2013-02-08 56 views
4

我新的asp.net與vb.code背後過程或函數「」期望參數「這是不提供」,

我試圖從SQL

我的代碼獲取價值

Dim apps As New MyApps 
apps.OpenConnection() 

Dim esql As New SqlCommand 
esql.Connection = apps.oConn 

esql.CommandText = "cekdatauploads" 
esql.Parameters.Add("@value", SqlDbType.Int, 2) 

esql.ExecuteNonQuery() 
esql.Parameters("@value").Direction = ParameterDirection.Output 

Dim nilai As Integer = esql.Parameters("@value").Value 

apps.CloseConnection() 

誤差

The parameterized query '(@value int)cekdatauploads' expects the parameter '@value', which was not supplied. 

我已經嘗試執行存儲庫prosedure

declare @p int 
exec [cekdatauploads] @p output 
print @p 

並返回0不是空值。

在此先感謝!

+2

我會在執行命令之前設置輸出方向。 – 2013-02-08 12:16:03

回答

7

嘗試通過交換兩條線。

esql.CommandText = "cekdatauploads" 
esql.Parameters.Add("@value", SqlDbType.Int, 2) 
esql.Parameters("@value").Direction = ParameterDirection.Output 
esql.ExecuteNonQuery() 

一件事如果cekdatauploads是strored過程中,您應該聲明它在CommandType

esql.CommandType = CommandType.StoredProcedure 
esql.CommandText = "cekdatauploads" 
esql.Parameters.Add("@value", SqlDbType.Int, 2) 
esql.Parameters("@value").Direction = ParameterDirection.Output 
esql.ExecuteNonQuery() 
+0

用於提及CommandType。把我絆倒在複製粘貼上。 – nutsch 2014-08-26 22:28:42

3

您正在執行你說的是命令之前,它是一個輸出參數的過程,默認情況下,它假定它是一個輸入參數。:

esql.Parameters("@value").Direction = ParameterDirection.Output 
esql.ExecuteNonQuery() 
相關問題