找不到SQL参数

找不到SQL参数,sql,sql-server,vb.net,stored-procedures,sql-server-2012,Sql,Sql Server,Vb.net,Stored Procedures,Sql Server 2012,错误: 过程或函数“”需要未提供的参数“@Param1” 存储过程的摘录: 我在SQL Server 2012上有一个存储过程。这个过程看起来像这样 选择* 从命令 其中Orders.CustomerID=@param1和 Orders.CustomerJoinDate=@param2 我从我的代码{使用Visual Studio 2008}中调用它,就像这样 Visual Studio中的调用方法: 首先,我创建一个参数数组,我将传递 Dim Param() As SqlClient.Sql

错误:

过程或函数“”需要未提供的参数“@Param1”

存储过程的摘录:

我在SQL Server 2012上有一个存储过程。这个过程看起来像这样

选择*
从命令
其中Orders.CustomerID=@param1和
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端出现问题。

如果调用的是存储过程,则需要相应地设置
SqlCommand的
CommandType

mSQLCmd.CommandText = SQLCmd

// add this line!
mSQLCmd.CommandType = CommandType.StoredProcedure

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

可能区分大小写。……您能验证SQL客户端正在执行的命令吗?听起来好像执行sp时未包含该参数。也可以在没有@的情况下执行此操作。。。。我记得像这样的事情,所以你可以
新建SqlClient.SqlParameter(“param1”,Me.cmbFilter1.Text)
你可以包括你的过程的完整定义,而不仅仅是正文吗?这只是一个输入错误?foreach使用Param而不是ParamsAmazing你可以从我提供的推断。。。啊,是的,今天显然有点晚了。谢谢你狠狠地打了我一耳光