我尝试更新记录时收到错误
过程或函数
(sp_UpdateEmp)
需要(@dateofbirth)
未提供的参数
这是我的功能
public void Updatedata(Bussinessobject.BO EBAL)
{
objconn = new SqlConnection(connectionstring);
if (objconn.State != ConnectionState.Open)
try
{
objconn.Open();
objcommand = new SqlCommand("sp_UpdateEmp", objconn);
objcommand.CommandType = CommandType.StoredProcedure;
objcommand.Parameters.AddWithValue("@id", EBAL.id);
objcommand.Parameters.AddWithValue("@fname", EBAL.fname);
objcommand.Parameters.AddWithValue("@lname", EBAL.lname);
objcommand.Parameters.AddWithValue("@address", EBAL.address);
objcommand.Parameters.AddWithValue("@phone", EBAL.phone);
objcommand.Parameters.AddWithValue("@birthdate", EBAL.birthdate);
objcommand.Parameters.AddWithValue("@hiredate", EBAL.datehire);
objcommand.Parameters.AddWithValue("@gender", EBAL.gender);
objcommand.ExecuteNonQuery();
}
catch
{
throw;
}
}
答案 0 :(得分:1)
使用SWeko的评论:
替换此行:
objcommand.Parameters.AddWithValue("@birthdate", EBAL.birthdate);
使用:
objcommand.Parameters.AddWithValue("@dateofbirth", EBAL.birthdate);
答案 1 :(得分:1)
两种可能性:
null
(这意味着根本不会发送);如果是这样替换为DBNull.Value
将两种可能性结合在一起:
objcommand.Parameters.AddWithValue("dateofbirth",
((object)EBAL.birthdate)??DBNull.Value);
答案 2 :(得分:0)
您sp中的参数名称为@dateofbirth
,并且您从上面的代码中传递@birthdate
。所以将其更改为@dateofbirth
。