【发布时间】:2017-06-16 09:30:50
【问题描述】:
实际上我有一个页面来更新个人资料信息。我有这样的代码
控制器
if (ModelState.IsValid)
{
string UpdateClinicName = null;
string UpdateDrname = null;
string UpdateClinicFullAddress = null;
string UpdateClinicFaxNo = null;
string UpdateClinicPhone = null;
string UpdateMOHRegistration = null;
string UpdateClinicEmail = null;
string UpdateContactID = null;
string UpdateHospitalRegistrationNo = null;
// Getting GroupID
string GroupIDdrinin = null;
GroupIDdrinin = Profiledatainfo.GroupID;
// Getting ContactID
UpdateContactID = Profiledatainfo.CContactID;
// Getting ClinicName
UpdateClinicName = Profiledatainfo.Clinicname;
// Getting Dr name
UpdateDrname = Profiledatainfo.Doctorname;
// Getting ClinicFullAddress
UpdateClinicFullAddress = Profiledatainfo.ClinicFullAddress;
// Getting ClinicPhone
UpdateClinicPhone = Profiledatainfo.ClinicPhone;
// Getting MOHRegistrationNo
UpdateMOHRegistration = Profiledatainfo.MOHRegistrationNo;
// Getting FaxNo
UpdateClinicFaxNo = Profiledatainfo.ClinicFaxNo;
// Getting Clinic Mail
UpdateClinicEmail = Profiledatainfo.ClinicBusinessEmail;
// Getting HospitalRegistrationNo
UpdateHospitalRegistrationNo = Profiledatainfo.RegistrationNo;
ClinicProfileTimingModelDAL UpdateProfileInfo = new ClinicProfileTimingModelDAL();
// Updating ProfileInformation
int Upstatus = UpdateProfileInfo.UpdateClinicProfile(UpdateContactID, UpdateClinicPhone, UpdateClinicFaxNo, UpdateClinicFullAddress, UpdateClinicEmail);
int Uregistatus = UpdateProfileInfo.UpdateClinicRegistration(GroupIDdrinin, UpdateMOHRegistration, UpdateHospitalRegistrationNo);
}
型号
public class ClinicProfileTimingModelDAL
{
public int UpdateClinicProfile(string ContactID, string ClinicPhone, string ClinicFaxNo, string ClinicAddress, string ClinicBusiessMail)
{
SqlConnection myConnection = new SqlConnection("DataBase Conn details");
myConnection.Open();
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "Execute SpClinicDetAmendMVC " + ContactID + ",'" + ClinicPhone + "','" + ClinicFaxNo + "','" + ClinicAddress + "','" + ClinicBusiessMail + "'";
//sqlCmd.CommandText = "Select ConfirmVisitID,MemberID,GroupID,RecStatus,CreateUserID,VisitDate from tblConfirmVisit where Cast(VisitDate as Date)='" + Vstdate + "' and CreateUserID="+createuserid+"";
sqlCmd.Connection = myConnection;
int Msg = 0;
Msg = sqlCmd.ExecuteNonQuery();
myConnection.Close();
return Msg;
}
public int UpdateClinicRegistration(string GroupID, string HospitalResitrationno, string MOHRegistrationNo)
{
SqlConnection myConnection = new SqlConnection("DataBase Conn details");
myConnection.Open();
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "Execute spupdateProfileInfoMVC '" + GroupID + "'," + HospitalResitrationno + "," + MOHRegistrationNo + "";
sqlCmd.Connection = myConnection;
int Msg = 0;
Msg = sqlCmd.ExecuteNonQuery();
myConnection.Close();
return Msg;
}
}
因此,当我尝试更新配置文件信息时,出现异常“我收到 .ExecuteNonQuery() 错误。用户代码未处理 SqlException //',' 附近的语法不正确。
所以我在模型部分尝试了另一种方法
sqlCmd.CommandText = "Execute spupdateProfileInfoMVC(@Cid, @Cp, @Cfn, @Ca, @Cbm) "
sqlCmd.CommandText.Parameters.AddWithValue("@Cid", ContactID );
sqlCmd.CommandText.Parameters.AddWithValue("@Cp", ClinicPhone );
sqlCmd.CommandText.Parameters.AddWithValue("@Cfn", ClinicFaxNo);
sqlCmd.CommandText.Parameters.AddWithValue("@Ca", ClinicAddress );
sqlCmd.CommandText.Parameters.AddWithValue("@Cbm", ClinicBusinessMail);
sqlCmd.CommandText.ExecuteNonQuery();
这种替代方式也给出了相同的例外。那么如何解决这个问题。任何帮助表示赞赏,在此先感谢
【问题讨论】:
-
您的查询字符串可能有无效部分,所有字符串值必须在逗号前的撇号中传递,如下所示:
EXEC spupdateProfileInfoMVC '" + GroupID + "','" + HospitalResitrationno + "','" + MOHRegistrationNo + "'" -
不使用
Execute,您可以将CommandText设为SP 的名称,然后将CommandType设置为CommandType.StoredProcedure并确保参数名称与SP 参数。 -
非常感谢@TetsuyaYamamoto。您的评论有助于我解决问题。现在我没有任何例外。但我仍然无法更新。提交更新后我仍然得到旧数据
标签: c# asp.net-mvc asp.net-mvc-4 c#-4.0