Sql server 2008 协助';过程或函数指定的参数太多';错误

Sql server 2008 协助';过程或函数指定的参数太多';错误,sql-server-2008,stored-procedures,Sql Server 2008,Stored Procedures,我需要第二双眼睛。当我尝试调用所讨论的存储过程时,我的C代码中出现了这个错误 我们正在运行SQL Server 2008,下面是我的C代码和存储过程设置: SqlConnection oConn = null; string Name = "Frank"; bool IsEmp = true; int RID = 31; oConn = SQLConnectionHelper.GetConnection(S

我需要第二双眼睛。当我尝试调用所讨论的存储过程时,我的C代码中出现了这个错误

我们正在运行SQL Server 2008,下面是我的C代码和存储过程设置:

    SqlConnection oConn = null;
            string Name = "Frank";
            bool IsEmp = true;
            int RID = 31;

    oConn = SQLConnectionHelper.GetConnection(SQLConnectionHelper.OurDB);

    var sqlParams = new SqlParameter[3];
    sqlParams[0] = new SqlParameter("@RID", RID);
    sqlParams[1] = new SqlParameter("@Name", Name);
    sqlParams[2] = new SqlParameter("@IsEmp", IsEmp);

    SqlHelper.ExecuteNonQuery(oConn, CommandType.StoredProcedure, "dbo.OurStoredProc", sqlParams);
存储过程的开始:

ALTER PROCEDURE [dbo].[OurStoredProc]
(
    @RID            INT,    
    @Name           nvarchar(20),
    @IsEmp          BIT
)
As

BEGIN TRANSACTION

我在这里遗漏了什么?

SqlHelper.ExecuteNonQuery方法是什么样子的?@adrianbanks您问了一个好问题,先生。我手头没有源代码,但签名是
ExecuteNonQuery(SqlConnection连接,CommandType CommandType,string commandText,params SqlParameter[]commandParameters)
。我能说的是,当我在该方法的其他变体上看到源代码时,它们基本上是传递到Microsoft Data Access应用程序块的。很抱歉没有提供有关该方法的更多信息。我想知道
SqlHelper
是否没有正确连接参数。或者你的存储过程不是你想象的那样-试着运行
sp_helptext OurStoredProc
来检查它的定义。我将我的存储过程复制到了一个简单的等效文件中(略多于上面代码片段中显示的参数,后面跟着一个“print”语句),效果很好。因此,我猜测SP中的某些内容是罪魁祸首…根据错误情况,我确实返回0或1。但是我改变了我的C#代码,在sqlParams中包含了一个返回参数,并得到了相同的错误。我会继续尝试,并会向您汇报……而这一次的答案似乎是操作员错误。我在讨论中的存储过程中添加了三个参数(以前是两个),我可以发誓我在之后运行了
ALTER-PROCEDURE
,以保存更改,但今天早上我看到这些更改没有生效。