找不到SQL参数

时间:2014-02-21 21:11:09

标签: sql sql-server vb.net stored-procedures sql-server-2012

错误:

  

过程或函数''期望参数'@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方面出了点问题。

1 个答案:

答案 0 :(得分:4)

如果您正在调用存储过程,则需要相应地设置CommandType的{​​{1}}!

SqlCommand

否则,您尝试调用的存储过程的名称将被解释为您尝试执行的SQL命令。