2013-02-08 74 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() 
相关问题