繁体   English   中英

无法在 C# 中更新 MS Access 数据库?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM