Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# System.Data.SqlClient.SqlException:';函数或过程的参数太多;_C#_Sql - Fatal编程技术网

C# System.Data.SqlClient.SqlException:';函数或过程的参数太多;

C# System.Data.SqlClient.SqlException:';函数或过程的参数太多;,c#,sql,C#,Sql,我一直在使用C#和SQL,但在执行存储过程更新数据库中的数据时出现了一个错误,下面是单击操作时调用的函数 public void UpdateFaculty() { SqlConnection connection = new SqlConnection(); connection.ConnectionString = @"Server=FS01-605484-PC\ROOT1;Database=School;Trusted_connectio

我一直在使用C#和SQL,但在执行存储过程更新数据库中的数据时出现了一个错误,下面是单击操作时调用的函数

 public void UpdateFaculty() {

            SqlConnection connection = new SqlConnection();
            connection.ConnectionString = @"Server=FS01-605484-PC\ROOT1;Database=School;Trusted_connection=true";

            SqlCommand sqlcommand = new SqlCommand();

            //Update Sotred Procedure
            sqlcommand.CommandType = CommandType.StoredProcedure;
            sqlcommand.CommandText = "update_Faculty";
            sqlcommand.Connection = connection;

            //Parameters to be modified 
            sqlcommand.Parameters.AddWithValue("pID_Faculty", int.Parse(lblID_Faculty.Text));
            sqlcommand.Parameters.AddWithValue("pCode", (txtCode.Text));
            sqlcommand.Parameters.AddWithValue("pName", (txtName.Text));
            sqlcommand.Parameters.AddWithValue("pCreation_Date", Convert.ToDateTime(txtCreationDate.Text));
            sqlcommand.Parameters.AddWithValue("pUniversity", int.Parse(ddlUniversity.SelectedValue));
            connection.Open();

            //Execute command on Database
            // The error is shown here
            sqlcommand.ExecuteNonQuery();

            connection.Close();

        }

        #endregion Methods

    }
这是我的SQL存储过程

CREATE PROCEDURE update_Faculty
    -- I declare my variables to be modified 
    @pID_Faculty INT,
    @pCode VARCHAR(20),
    @pName VARCHAR(100),
    @pCreation_Date DATE,
    @pUniversity INT
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Statements for procedure here
    UPDATE Faculty
    SET Code = @pCode,
        Name = @pName,
        Creation_date = @pCreation_Date,
        University = @pUniversity
    WHERE ID_Faculty = @pID_Faculty

END

您是否绝对确定存储的进程是您所认为的?很容易发现,存储在特定服务器上的进程不是本地的进程;也可能是在不同的模式中有两个版本的
update\u Faculty
——可能是
dbo.update\u Faculty
vs
YourServiceUser.update\u Faculty
——可能有不同数量的参数
YourServiceUser.update\u Faculty
将优先选择
dbo.update\u Faculty
如果它存在,我看没有任何问题,你能检查一下该存储过程是否与服务器中的存储过程匹配吗?@MarcGravel我还有4个存储过程以相同的方式实现,我正在尝试实现这个存储过程,没有问题,我也尝试过删除程序并重新创建,但在调试应用程序时,即使更改了名称,仍然会出现错误,我尝试修改的参数正确存储在变量中。您是否尝试过通过SSMS执行存储过程并直接传入参数?删除存储过程并执行代码,错误消息应该会更改,如果没有,您没有查看正确的数据库您是否绝对确定存储的过程与您认为的一样?很容易发现,存储在特定服务器上的进程不是本地的进程;也可能是在不同的模式中有两个版本的
update\u Faculty
——可能是
dbo.update\u Faculty
vs
YourServiceUser.update\u Faculty
——可能有不同数量的参数
YourServiceUser.update\u Faculty
将优先选择
dbo.update\u Faculty
如果它存在,我看没有任何问题,你能检查一下该存储过程是否与服务器中的存储过程匹配吗?@MarcGravel我还有4个存储过程以相同的方式实现,我正在尝试实现这个存储过程,没有问题,我也尝试过删除程序并重新创建,但在调试应用程序时,即使更改了名称,仍然会出现错误,我尝试修改的参数正确存储在变量中。您是否尝试过通过SSMS执行存储过程并直接传入参数?删除存储过程并执行代码,错误消息应该会更改,如果没有更改,则您没有查看正确的数据库