0
我有SQL Server 2008中編寫的以下SQL語句,即使表中有數據,也不會爲OUTPUT參數返回一個值。我添加了靜態值並單獨運行查詢,並生成了一條記錄,所以我不確定它是否與我的存儲過程或我的VB.NET代碼有關。SQL OUTPUT參數未分配
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
你永遠不會從你的VB.NET代碼中的參數中的值退了出去。不知道爲什麼你綁定了ExecuteReader的結果,因爲它是空的。 – Oded
看起來在你的VB代碼中。執行完SPROC後,你需要從參數中取出輸出值:DIm SomeString as string = cmd.Parameters(「@ FPath」)。值 – MBulava
@Oded:輸入/輸出是從SQL Server的角度。您不讀取** in **參數中的值。 – Andomar