嘿,我希望收到SP使用VB.net调出的响应。这是我做的只是代码:从存储过程获得响应
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
为了获取返回的值?
任何帮助将是伟大的!谢谢!
大卫
UPDATE
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
)
我不断收到错误:字符串[4]的大小属性为0
一个无效的大小是什么意思?
在SP返回的是这样的** SET @theOutput = 1 ** – StealthRT 2012-01-06 07:00:16
我会放** d im value = command.Parameters(“@ theOutput”)。Value ** AFTER ** command.ExecuteNonQuery()**或BEFORE? – StealthRT 2012-01-06 07:02:40
@StealthRT:首先,你需要**执行**存储过程 - 只有**后,你可以抓住输出参数.... – 2012-01-06 07:12:10