【发布时间】:2012-01-06 04:41:29
【问题描述】:
大家好,我希望收到来自我使用 VB.net 调用的 SP 的回复。这是我的代码:
connection.Open()
command.CommandType = CommandType.StoredProcedure
command.CommandText = "RPT_C_S_H"
command.Parameters("@theOutput").Direction = ParameterDirection.Output 'returns 0 if bad, 1 if good
Dim dataReader As SqlDataReader = command.ExecuteReader()
所以我现在只做一个
dim returnedValue as integer = 0
Do While dataReader.Read()
returnedValue = dataReader(0)
Loop
为了得到返回值?
任何帮助都会很棒!谢谢!
大卫
更新
connection.Open()
command.CommandType = CommandType.StoredProcedure
command.CommandText = "RPT_C_S_H"
Dim sqlParReturn As System.Data.SqlClient.SqlParameter = command.Parameters.Add("@theOutput", SqlDbType.SmallInt)
sqlParReturn.Direction = ParameterDirection.ReturnValue
command.ExecuteNonQuery()
Dim returnedValue As Integer = CInt(sqlParReturn.Value)
更新 #2
Dim sqlParReturn1 As System.Data.SqlClient.SqlParameter = command.Parameters.Add("@Error_Code", SqlDbType.Int)
Dim sqlParReturn2 As System.Data.SqlClient.SqlParameter = command.Parameters.Add("@Err_Msg", SqlDbType.VarChar)
Dim sqlParReturn3 As System.Data.SqlClient.SqlParameter = command.Parameters.Add("@result", SqlDbType.Bit)
sqlParReturn1.Direction = ParameterDirection.Output
sqlParReturn2.Direction = ParameterDirection.Output
sqlParReturn3.Direction = ParameterDirection.Output
command.ExecuteNonQuery()
Dim returnedValue1 As String = sqlParReturn1.Value
Dim returnedValue2 As String = sqlParReturn2.Value
Dim returnedValue3 As String = sqlParReturn3.Value
SP 看起来像这样:
ALTER PROCEDURE [dbo].[CSS_SP_Job_Return] (
@job INT,
@UserID VARCHAR(50),
@Printer_Name VARCHAR(30),
@Error_Code int OUTPUT,
@Err_Msg varchar (1000) OUTPUT,
@result BIT OUTPUT
)
我不断收到错误消息:String[4] size 属性的大小无效为 0
这是什么意思?
【问题讨论】:
标签: sql vb.net stored-procedures parameters sql-server-2008-r2