Asp.net 程序或功能“&引用;期望参数“&引用;,这是没有提供的

Asp.net 程序或功能“&引用;期望参数“&引用;,这是没有提供的,asp.net,sql,vb.net,sql-server-2008,Asp.net,Sql,Vb.net,Sql Server 2008,我是asp.net新手,vb.net代码落后 我正在尝试从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

我是asp.net新手,vb.net代码落后

我正在尝试从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.
我已经尝试执行存储过程

declare @p int
exec [cekdatauploads] @p output
print @p
并返回0而不是空值


提前谢谢

试着将这两条线互换

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()

在告诉命令它是一个输出参数之前,您正在执行该过程,默认情况下,它假定它是一个输入参数:

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

在执行命令之前,我会设置输出方向。+1表示CommandType。在复制粘贴上难住了我。