简单的SQL Update语句偶尔在MS Access中工作
本文关键字:MS Access 工作 偶尔 SQL Update 语句 简单 | 更新日期: 2023-09-27 18:16:01
我遇到的问题是,当我在不同的字段上运行SQL UPDATE时,但是在我的SQL语句中相同的WHERE条件一个会产生更改,而另一个则不会。
不产生受影响的行:
DateTime now = DateTime.Now;
OleDbCommand cmd = new OleDbCommand("UPDATE shifts SET end_log=@end_log WHERE profile_id=@profile_id;");
cmd.Parameters.AddWithValue("@profile_id", profileID); // profileID is a string
cmd.Parameters.AddWithValue("@end_log", now.ToString());
然而,如果我运行这个,只有一行受到影响:
OleDbCommand cmd = new OleDbCommand("UPDATE shifts SET closing=true WHERE profile_id=@profile_id;");
cmd.Parameters.AddWithValue("@profile_id", profileID);
我的班次表有以下字段:
profile_id - Short Text
end_log - Date/Time
closed - Yes/No
可以假设这两个表在两个实例中保存相同的数据(这是自动加载的,只包含一条记录)。
有人发现任何错误吗?
当使用OLEDB provider 时,参数的顺序很重要。
不是OleDbCommand cmd = new OleDbCommand("UPDATE shifts SET end_log=@end_log WHERE profile_id=@profile_id;");
cmd.Parameters.AddWithValue("@profile_id", profileID); // profileID is a string
cmd.Parameters.AddWithValue("@end_log", now.ToString());
试
OleDbCommand cmd = new OleDbCommand("UPDATE shifts SET end_log=@end_log WHERE profile_id=@profile_id;");
cmd.Parameters.AddWithValue("@end_log", now.ToString());
cmd.Parameters.AddWithValue("@profile_id", profileID); // profileID is a string
参数加入Parameters
集合的顺序应与查询中参数出现的顺序一致。