嘿,我希望收到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