过程或函数""需要参数"",这是未提供的

Yan*_*nto 4 sql vb.net asp.net sql-server-2008

我是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()
Run Code Online (Sandbox Code Playgroud)

错误是

The parameterized query '(@value int)cekdatauploads' expects the parameter '@value', which was not supplied.
Run Code Online (Sandbox Code Playgroud)

我已经尝试执行商店prosedure

declare @p int
exec [cekdatauploads] @p output
print @p
Run Code Online (Sandbox Code Playgroud)

并返回0不为空值.

提前致谢!

Joh*_*Woo 7

尝试通过互换两条线.

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

还有一件事,如果cekdatauploads是一个严格的程序,你应该在声明中声明它CommandType

esql.CommandType = CommandType.StoredProcedure
esql.CommandText = "cekdatauploads"
esql.Parameters.Add("@value", SqlDbType.Int, 2)
esql.Parameters("@value").Direction = ParameterDirection.Output
esql.ExecuteNonQuery()
Run Code Online (Sandbox Code Playgroud)