SQL OUTPUT参数未分配

时间:2013-05-14 20:53:18

标签: asp.net sql vb.net

我在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

1 个答案:

答案 0 :(得分:3)

输出参数未显示在结果集中。因此,您无法使用ExecuteReader()阅读它。

你可以这样读:

Dim result as String = cmd.Parameters("@FPath").Value