我是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而不是空值。
提前致谢!
答案 0 :(得分:7)
尝试交换两条线。
esql.CommandText = "cekdatauploads"
esql.Parameters.Add("@value", SqlDbType.Int, 2)
esql.Parameters("@value").Direction = ParameterDirection.Output
esql.ExecuteNonQuery()
如果,cekdatauploads
是一个标记过程,你应该在CommandType
esql.CommandType = CommandType.StoredProcedure
esql.CommandText = "cekdatauploads"
esql.Parameters.Add("@value", SqlDbType.Int, 2)
esql.Parameters("@value").Direction = ParameterDirection.Output
esql.ExecuteNonQuery()
答案 1 :(得分:3)
在告诉命令它是输出参数之前,您正在执行该过程,默认情况下它假定它是输入参数。:
esql.Parameters("@value").Direction = ParameterDirection.Output
esql.ExecuteNonQuery()