Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 从MsgBox中的存储过程中检索返回值_Sql Server_Vb.net_Stored Procedures_Ado.net - Fatal编程技术网

Sql server 从MsgBox中的存储过程中检索返回值

Sql server 从MsgBox中的存储过程中检索返回值,sql-server,vb.net,stored-procedures,ado.net,Sql Server,Vb.net,Stored Procedures,Ado.net,我在VisualStudio中连接到SQL Server,我想执行存储过程并在消息框中检索返回值,但我不知道如何执行 我只知道: SqlConnection工作正常,显然问题出在最后几行: Dim myConnNAC As New SqlConnection("Initial Catalog=Northwind;Data Source=SERVERNAC\KANTAR;Initial Catalog=NACDroid;Persist Security Info=True;User ID=xxx

我在VisualStudio中连接到SQL Server,我想执行存储过程并在消息框中检索返回值,但我不知道如何执行

我只知道:

SqlConnection工作正常,显然问题出在最后几行:

Dim myConnNAC As New SqlConnection("Initial Catalog=Northwind;Data Source=SERVERNAC\KANTAR;Initial Catalog=NACDroid;Persist Security Info=True;User ID=xxxxxx;Password=xxxxxx;")

Dim cmd As New SqlCommand
cmd.CommandText = "NACDRoid_actualiza_domicilios"
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = myConnNAC

myConnNAC.Open()

Dim returnValue As Object
returnValue = cmd.ExecuteReader.ToString()

MsgBox(returnValue)
当我执行存储过程时,直接在SQL Server中显示0作为返回值如果没有问题,这就是我在MsgBox中需要的


如果只想检索单个值,请使用


如果只想检索单个值,请使用

cmd.ExecuteReader.ToString

而不是
ExecuteReader

cmd.ExecuteReader.ToString
这有什么用?那么,语句的前半部分已经执行了

cmd.ExecuteReader
返回此类型的实例

(读取图像中的文本),然后在此实例上调用
ToString
ToString
的默认实现返回类型名称。与中一样,“System.Data.SqlClient.SqlDataReader”

您需要使用读取器从数据库中获取数据

通常,如果使用ADO从数据库检索单个值,您需要在命令对象上查找一个名为
ExecuteScalar
的好方法

这有什么用?那么,语句的前半部分已经执行了

cmd.ExecuteReader
返回此类型的实例

(读取图像中的文本),然后在此实例上调用
ToString
ToString
的默认实现返回类型名称。与中一样,“System.Data.SqlClient.SqlDataReader”

您需要使用读取器从数据库中获取数据


通常,如果使用ADO从数据库检索单个值,您需要在命令对象上查找一个名为
ExecuteScalar
的小方法。

使用
ExecuteScalar()
。为什么将ReturnValue设为object?在您的SQL代码中,它是一个整数。哦,谢谢各位,我做了您的更改,现在可以工作了
Dim returnValue As Integer
returnValue=cmd.ExecuteScalar
非常感谢。能否显示存储过程的代码?非常确定零不是上面的@return\u值。你能不能也测试一下非零回报率?当有人给你一个解决方案(下面有两个)时,你应该选择一个作为正确答案。请求帮助、获取帮助,然后编辑问题以添加“已解决”或“解决方案:照这些人说的做”有点粗鲁。请改用
ExecuteScalar()
。为什么将ReturnValue设置为Object?在您的SQL代码中,它是一个整数。哦,谢谢各位,我做了您的更改,现在可以工作了
Dim returnValue As Integer
returnValue=cmd.ExecuteScalar
非常感谢。能否显示存储过程的代码?非常确定零不是上面的@return\u值。你能不能也测试一下非零回报率?当有人给你一个解决方案(下面有两个)时,你应该选择一个作为正确答案。请求帮助,获取帮助,然后编辑你的问题,添加“已解决”或“解决方案:照这些人说的做”是有点粗鲁的。