[英]Can't update MS Access database in C#?
我的代码:
OleDbCommand cmd1 = new OleDbCommand("UPDATE student_info SET fee_due = @fee_due WHERE adm_no = @adm_no", con);
cmd1.Parameters.AddWithValue("@adm_no", adm_no);
cmd1.Parameters.AddWithValue("@fee_due", fee_due);
int affect = cmd1.ExecuteNonQuery();
MessageBox.Show(affect.ToString());
我的代码每次总是显示 0 行受到影响,但在我的数据库中,必须是会受到影响的行
你能建议我如何调试这个问题吗?
由于 OleDB for MS Access不支持命名参数(仅位置参数),因此您必须非常小心地以与定义参数相同的顺序提供值。
在您的情况下,该语句首先列出@fee_due
,在@adm_no
之前 - 但您以其他顺序提供值。
像这样改变你的代码:
OleDbCommand cmd1 = new OleDbCommand("UPDATE student_info SET fee_due = @fee_due WHERE adm_no = @adm_no", con);
// provide the value for @fee_due FIRST
cmd1.Parameters.AddWithValue("@fee_due", fee_due);
// provide the value for @adm_no only after @fee_due
cmd1.Parameters.AddWithValue("@adm_no", adm_no);
int affect = cmd1.ExecuteNonQuery();
MessageBox.Show(affect.ToString());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.