0

テーブルにデータがあるにもかかわらず、OUTPUT パラメータの値を返さない SQL Server 2008 で記述された次の SQL ステートメントがあります。静的な値を追加し、クエリを単独で実行したところ、レコードが生成されたので、ストアド プロシージャまたは VB.NET コードと関係があるかどうかはわかりません。

ALTER Procedure  [dbo].[GetGenInfo_Delete01_01_22]
@IDX int,
@FPath varchar(100) OUTPUT

AS

Begin
    SELECT @FPath = FilePath FROM GENINFO_E1_01_22 WHERE ID = @IDX  
    DELETE 
    FROM GenInfo_E1_01_22
    WHERE ID = @IDX

END

私のVBコード

Using con As New SqlConnection(connstr)
    Using cmd As New SqlCommand()
        cmd.CommandType = CommandType.StoredProcedure
        cmd.CommandText = "GetGenInfo_Delete01_01_22"
        cmd.Parameters.Add("IDX", ID)
        cmd.Parameters.Add("@FPath", SqlDbType.VarChar, 100)
        cmd.Parameters("@FPath").Direction = ParameterDirection.Output
        cmd.Connection = con
        con.Open()
        GridView1.DataSource = cmd.ExecuteReader()
        GridView1.DataBind()
        con.Close()
    End Using
End Using
4

1 に答える 1

3

出力パラメーターが結果セットに表示されません。したがって、 で読み取ることはできませんExecuteReader()

次のように読むことができます。

Dim result as String = cmd.Parameters("@FPath").Value
于 2013-05-14T20:56:16.110 に答える