こんにちは、私は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
をしますか?
助けがあれば助かります。ありがとう!
デビッド
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)
UPDATE#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
私は**入れてしまうでしょうD im value = command.Parameters( "@ theOutput")。値** AFTER ** command.ExecuteNonQuery()**またはBEFORE? – StealthRT
@StealthRT:まず、保存したプロシージャのみを実行する必要があります**その後**出力パラメータを取得できます。 –