0

我有以下用 SQL Server 2008 编写的 SQL 语句,即使表中有数据,它也没有返回 OUTPUT 参数的值。我添加了静态值并单独运行查询并生成了一条记录,所以我不确定它是否与我的存储过程或我的 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 回答