错误:
过程或函数''期望参数'@Param1'未提供。
存储过程的摘录:
我在SQL Server 2012上有一个存储过程。该过程看起来像这样......
SELECT *
FROM Orders
WHERE Orders.CustomerID = @param1 AND
Orders.CustomerJoinDate = @param2
我从我的代码{使用Visual Studio 2008}中调用它就像这样......
Visual Studio中的调用方法:
首先,我创建一个我要传递的参数数组......
Dim Param() As SqlClient.SqlParameter =
New SqlClient.SqlParameter()
{
New SqlClient.SqlParameter("@Param1", Me.cmbFilter1.Text),
New SqlClient.SqlParameter("@Param2", Me.cmbFilter2.Text)
}
然后我遍历参数并将它们添加到由datareader执行的命令中。
mSQLCmd
设置为调用上述存储过程...
mSQLCmd.Parameters.Clear()
mSQLCmd.CommandText = SQLCmd
For Each sParam As SqlClient.SqlParameter In Param
mSQLCmd.Parameters.AddWithValue(sParam.ParameterName, sParam.Value)
Next
在以下情况下发生错误:
我尝试运行mSQL.ExecuteReader()
有人能指出我正确的方向吗?我已验证每个参数都包含在Param()
中且值正确。
我还测试了SQL Server上的存储过程,并验证了提供两个必要参数的时间是否正常。 vb方面出了点问题。
答案 0 :(得分:4)
如果您正在调用存储过程,则需要相应地设置CommandType
的{{1}}!
SqlCommand
否则,您尝试调用的存储过程的名称将被解释为您尝试执行的SQL命令。