【问题标题】:Procedure or function "" expects parameter "", which was not supplied过程或函数“”需要未提供的参数“”
【发布时间】:2013-01-24 04:54:41
【问题描述】:

我是 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.

我已经尝试执行 store prosedure

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

并返回 0 而不是空值。

提前致谢!

【问题讨论】:

  • 我会在你执行命令之前设置输出方向。

标签: asp.net sql vb.net sql-server-2008


【解决方案1】:

尝试交换这两行。

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 用于提及 CommandType。复制粘贴把我难住了。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    相关资源
    最近更新 更多