过程或函数需要未提供的参数
本文关键字:参数 函数 过程 | 更新日期: 2023-09-27 18:32:49
我在尝试更新记录时出错
过程或函数
(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;
}
}
使用 SWeko 的评论:
替换此行:
objcommand.Parameters.AddWithValue("@birthdate", EBAL.birthdate);
跟:
objcommand.Parameters.AddWithValue("@dateofbirth", EBAL.birthdate);
两种可能性:
- 参数名称有一个拼写错误(如果数据库配置为拼写错误,则可能包括区分大小写);如果是这样:Fox 拼写错误
- 参数值为
null
(这意味着它根本不被发送);如果是,请替换为DBNull.Value
同时应用这两种可能性:
objcommand.Parameters.AddWithValue("dateofbirth",
((object)EBAL.birthdate)??DBNull.Value);
sp 中的参数名称@dateofbirth
,并且您正在从上面的代码传递@birthdate
。所以把它改成 @dateofbirth
.