C# 尝试将数据添加到数据库时出错

C# 尝试将数据添加到数据库时出错,c#,asp.net-mvc,C#,Asp.net Mvc,我试图使用控制器将参与者数据添加到数据库中,但出现以下错误: SqlParameter已包含在另一个SqlParameterCollection中 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 Exception Details: System.ArgumentException: The SqlParameter is already contained by another SqlParameterCollection. Sou

我试图使用控制器将参与者数据添加到数据库中,但出现以下错误:

SqlParameter已包含在另一个SqlParameterCollection中

描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

Exception Details: System.ArgumentException: The SqlParameter is already contained by another SqlParameterCollection.

Source Error: 
Line 195:  //@returnInventoryId AS  int OUTPUT
Line 196:
Line 197:  var recordsAffected = dbFFS.Database.ExecuteSqlCommand(
Line 198:  "sp_InsertOrUpdateContributor @electionId, @candidateId, @contributorId, @eligibleForRebate, @lastName, @firstName, @middleName, @fullName, @contributorTypeAbbr, @streetNo, @streetName, @unit, @city, @province, @country, @postalCode, @mailingAddress1, @mailingAddress2, @mailingAddress3, @mailingAddress4, @homePhone, @workPhone, @cellPhone, @emailAddress, @notes,  @returnInventoryId OUT  ",
Line 199:  param1, param2, param3, param4, param2, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param18, param19, param20, param21, param22, param23, param24, param25, param15, param15, pOutput);
以下是我的代码[控制器]:

public ActionResult Edit(ffsContributor model)
        {
            FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value);
            //0 Username | 1 Fullname | 2 User Id | 3 Login Type | 4 Election Id
            string[] UserData = ticket.UserData.Split('|');

            if (UserData[3] != "candidate")
            {
                FormsAuthentication.SignOut();
                return RedirectToAction("Index", "Home");
            }

            int candidateid = Convert.ToInt32(UserData[2]);
            int electionID = Convert.ToInt32(UserData[4]);

            model = dbFFSSave(electionID, candidateid, model);

            //check inventory request is the same with the model
            return View(model);

        }

        public ActionResult Add()
        {
            FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value);
            //0 Username | 1 Fullname | 2 User Id | 3 Login Type | 4 Election Id
            string[] UserData = ticket.UserData.Split('|');

            if (UserData[3] != "candidate")
            {
                FormsAuthentication.SignOut();
                return RedirectToAction("Index", "Home");
            }

            int candidateid = Convert.ToInt32(UserData[2]);
            int electionID = Convert.ToInt32(UserData[4]);

            ffsContributor model = new ffsContributor
            {
                CandidateId = candidateid,
                ContributorId = 0
            };

            model.DropDownList = DbFFSGetOffices(electionID, candidateid);

            return View(model);
        }

        private Models.ffsContributor dbFFSSave(int electionId, int candidateID, Models.ffsContributor model)
        {

            SqlParameter param1 = new SqlParameter("@electionId", electionId);
            SqlParameter param2 = new SqlParameter("@candidateId", model.CandidateId);
            //SqlParameter param3 = new SqlParameter("@contributorId", model.ContributorId);
            SqlParameter param4 = new SqlParameter("@eligibleForRebate", model.EligibleForRebate);
            SqlParameter param5 = new SqlParameter("@lastName", model.LastName);
            SqlParameter param6 = new SqlParameter("@firstName", model.FirstName);
            SqlParameter param7 = new SqlParameter("@middleName", model.MiddleName);
            SqlParameter param8 = new SqlParameter("@fullName", model.FullName);
            SqlParameter param9 = new SqlParameter("@contributorTypeAbbr", model.ContributorTypeAbbr);
            SqlParameter param10 = new SqlParameter("@streetNo", model.StreetNo);
            SqlParameter param11 = new SqlParameter("@streetName", model.StreetName);
            SqlParameter param12 = new SqlParameter("@unit", model.Unit);
            SqlParameter param13 = new SqlParameter("@streetName", model.StreetName);
            SqlParameter param14 = new SqlParameter("@city", model.City);
            SqlParameter param15 = new SqlParameter("@province", model.Province);
            SqlParameter param16 = new SqlParameter("@postalCode", model.PostalCode);
            SqlParameter param18 = new SqlParameter("@mailingAddress1", model.MailingAddress1);
            SqlParameter param19 = new SqlParameter("@mailingAddress2", model.MailingAddress2);
            SqlParameter param20 = new SqlParameter("@mailingAddress3", model.MailingAddress3);
            SqlParameter param21 = new SqlParameter("@mailingAddress4", model.MailingAddress4);
            SqlParameter param22 = new SqlParameter("@homePhone", model.HomePhone);
            SqlParameter param23 = new SqlParameter("@workPhone", model.WorkPhone);
            SqlParameter param24 = new SqlParameter("@emailAddress", model.EmailAddress);
            SqlParameter param25 = new SqlParameter("@notes", model.Notes);

            SqlParameter param3 = new SqlParameter("@contributorId", DBNull.Value);


            //if (model.ContributorId < 0)
            //{
              //  param5.Value = model.ContributorId;
            //}


            var pOutput = new SqlParameter("@returnContributorId", System.Data.SqlDbType.Int)
            {
                Direction = System.Data.ParameterDirection.Output
            };
            //@returnInventoryId AS  int OUTPUT

            var recordsAffected = dbFFS.Database.ExecuteSqlCommand(
                                "sp_InsertOrUpdateContributor @electionId, @candidateId, @contributorId, @eligibleForRebate, @lastName, @firstName, @middleName, @fullName, @contributorTypeAbbr, @streetNo, @streetName, @unit, @city, @province, @country, @postalCode, @mailingAddress1, @mailingAddress2, @mailingAddress3, @mailingAddress4, @homePhone, @workPhone, @cellPhone, @emailAddress, @notes,  @returnInventoryId OUT  ",
                                param1, param2, param3, param4, param2, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param18, param19, param20, param21, param22, param23, param24, param25, param15, param15, pOutput);


            model.DropDownList = DbFFSGetOffices(electionId, candidateID);

            return model;

        }
公共行动结果编辑(ffsContributor模型)
{
FormsAuthenticationTicket票证=FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormScookeName].Value);
//0用户名| 1全名| 2用户Id | 3登录类型| 4选举Id
字符串[]UserData=ticket.UserData.Split(“|”);
如果(用户数据[3]!=“候选人”)
{
FormsAuthentication.SignOut();
返回重定向到操作(“索引”、“主页”);
}
int candidateid=Convert.ToInt32(UserData[2]);
int electionID=Convert.ToInt32(UserData[4]);
model=dbFFSSave(electionID,candidateid,model);
//检查库存申请与模型相同
返回视图(模型);
}
公共行动结果添加()
{
FormsAuthenticationTicket票证=FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormScookeName].Value);
//0用户名| 1全名| 2用户Id | 3登录类型| 4选举Id
字符串[]UserData=ticket.UserData.Split(“|”);
如果(用户数据[3]!=“候选人”)
{
FormsAuthentication.SignOut();
返回重定向到操作(“索引”、“主页”);
}
int candidateid=Convert.ToInt32(UserData[2]);
int electionID=Convert.ToInt32(UserData[4]);
ffsContributor型号=新ffsContributor
{
CandidateId=CandidateId,
贡献者ID=0
};
model.DropDownList=DbFFSGetOffices(electionID,candidateid);
返回视图(模型);
}
private Models.ffsContributor dbFFSSave(int electionId,int candidateID,Models.ffsContributor model)
{
SqlParameter param1=新的SqlParameter(“@electionId”,electionId);
SqlParameter param2=新的SqlParameter(“@candidateId”,model.candidateId);
//SqlParameter param3=新的SqlParameter(“@contributorId”,model.contributorId);
SqlParameter param4=新的SqlParameter(“@eligibleForRebate”,model.eligibleForRebate);
SqlParameter param5=新的SqlParameter(“@lastName”,model.lastName);
SqlParameter param6=新的SqlParameter(“@firstName”,model.firstName);
SqlParameter param7=新的SqlParameter(“@middleName”,model.middleName);
SqlParameter param8=新的SqlParameter(“@fullName”,model.fullName);
SqlParameter param9=新的SqlParameter(“@contributorTypeAbbr”,model.contributorTypeAbbr);
SqlParameter param10=新的SqlParameter(“@streetNo”,model.streetNo);
SqlParameter param11=新的SqlParameter(“@streetName”,model.streetName);
SqlParameter param12=新的SqlParameter(“@unit”,model.unit);
SqlParameter param13=新的SqlParameter(“@streetName”,model.streetName);
SqlParameter param14=新的SqlParameter(“@city”,model.city);
SqlParameter param15=新的SqlParameter(“@provider”,model.provider);
SqlParameter param16=新的SqlParameter(“@postalCode”,model.postalCode);
SqlParameter param18=新的SqlParameter(“@mailingAddress1”,model.mailingAddress1);
SqlParameter param19=新的SqlParameter(“@mailingAddress2”,model.mailingAddress2);
SqlParameter param20=新的SqlParameter(“@mailingAddress3”,model.mailingAddress3);
SqlParameter param21=新的SqlParameter(“@mailingAddress4”,model.mailingAddress4);
SqlParameter param22=新的SqlParameter(“@homePhone”,model.homePhone);
SqlParameter param23=新的SqlParameter(“@workPhone”,model.workPhone);
SqlParameter param24=新的SqlParameter(“@emailAddress”,model.emailAddress);
SqlParameter param25=新的SqlParameter(“@notes”,model.notes);
SqlParameter param3=新的SqlParameter(“@contributorId”,DBNull.Value);
//if(模型贡献者ID<0)
//{
//param5.Value=model.ContributorId;
//}
var pOutput=new-SqlParameter(“@returnContributorId”,System.Data.SqlDbType.Int)
{
方向=System.Data.ParameterDirection.Output
};
//@returnInventoryId作为int输出
var recordsafected=dbFFS.Database.ExecuteSqlCommand(
“sp_InsertOrUpdateContributor@electionId、@candidateId、@contributorId、@EligileForRebate、@lastName、@firstName、@middleName、@contributorTypeAbbr、@streetNo、@streetName、@unit、@city、@province、@country、@postalCode、@mailingaddress 1、@mailingaddress 2、@mailingaddress 3、@mailingaddress、@mailingaddress 4、@homePhone、@workPhone、@mobile、@emailA”地址,@notes,@returnInventoryId OUT“,
param1、param2、param3、param4、param2、param5、param6、param7、param8、param9、param10、param11、param12、param13、param14、param15、param16、param18、param19、param20、param21、param22、param23、param24、param25、param15、param15、pOutput);
model.DropDownList=DbFFSGetOffices(electionId,candidateID);
收益模型;
}
我的cshtml文件:

@using (Html.BeginForm("Edit", "ffsContributors"))
{
    @Html.HiddenFor(m => m.ContributorId)
    @Html.TextBoxFor(m => m.FullName, new { @placeholder = "FullName" })
    @Html.TextBoxFor(m => m.EmailAddress, new { @placeholder = "EmailAddress" })
    @Html.TextBoxFor(m => m.WorkPhone, new { @placeholder = "WorkPhone" })
    @Html.TextBoxFor(m => m.HomePhone, new { @placeholder = "HomePhone" })
   // @Html.DropDownListFor(m => m.CellPhone, Model.DropDownList)

    <input type="submit" value="Save" />
}
@使用(Html.BeginForm(“编辑”、“ffsContributors”))
{
@Html.HiddenFor(m=>m.ContributorId)
@TextBoxFor(m=>m.FullName,新的{@placeholder=“FullName”})
@Html.TextBoxFor(m=>m.EmailAddress,新的{@placeholde
SqlParameter param11 = new SqlParameter("@streetName", model.StreetName);
SqlParameter param13 = new SqlParameter("@streetName", model.StreetName);
SqlParameter param11 = new SqlParameter("@streetName", model.StreetName);
SqlParameter param13 = new SqlParameter("@streetName", model.StreetName);