【发布时间】:2019-11-12 22:19:06
【问题描述】:
我正在尝试更新我的数据库中 UID 匹配的 4 列,查询运行良好,没有错误输出,但数据库保持不变。数据库完全关闭,除了代码之外没有其他任何东西可以打开。我对在代码中使用数据库很陌生,所以我完全无法尝试在这里找到错误。
更新查询代码如下:
conn.Open();
OleDbCommand UpdateUserCMD = new OleDbCommand("Update Accounts_Info Set Unique_ID=@Unique_ID, Last_Login_Date=@Last_Login_Date, Last_IP=@Last_IP, Last_MAC=@Last_MAC" + " Where Unique_ID=@Unique_ID", conn);
UpdateUserCMD.Parameters.AddWithValue("@Last_Login_Date", DateTime.Now.ToString("yyyy.MM.dd_hh:mm:ss"));
UpdateUserCMD.Parameters.AddWithValue("@Last_IP", GetIPAddress(Dns.GetHostName()).ToString());
UpdateUserCMD.Parameters.AddWithValue("@Last_MAC", GetMACAddress());
UpdateUserCMD.Parameters.AddWithValue("@Unique_ID", TempGUIDHolder);
UpdateUserCMD.ExecuteNonQuery();
conn.Close();
连接字符串如下:
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:/A-Level/Development/A_Level_AI_Project/A_Level_AI_Project/resources/Accounts.accdb");
其他查询工作正常,所以我不认为它的连接字符串有问题。
【问题讨论】:
-
只是再次检查,因为您使用的是基于文件的数据库:a) 您确定您正在查看您的代码正在更改的同一个数据库文件吗? b)你确定没有任何东西(比如构建过程)在你的程序正在更改的数据库的顶部复制早期的数据库
-
相当肯定,我可以使用相同的表名将更新替换为插入或删除查询,它们都可以正常工作。所有其他打开到数据库的连接实例都在每次查询后关闭,在同一个表中此查询后的命令工作正常,所以我认为没有任何东西在复制早期的数据库。
-
您要更改 Unique_ID 吗?因为如果您将其更改为新值,那么您就无法希望在 where 语句中找到正确的记录。并且您确定您没有围绕该代码块的空尝试/捕获。正如所写,你应该得到一个例外
标签: c# sql oledb oledbcommand