我正在尝试更新名为“Building_Login”的表中的最后一个条目我希望更新某个ID(不是唯一的)的最后一个条目,但每次我尝试这样做时它都会更新所有ID等于我的查询,但我只想更新最后一个。
我目前正试图让TOP 1正常工作,因为限制1似乎不适用于我的Access数据库。
OleDbCommand commandUpdate = new OleDbCommand("UPDATE [Building_Login] SET Exited = '" + DateTime.Now + "' WHERE TOP 1 User_ID = @UserID ORDER BY User_ID DESC", connection);
非常感谢任何帮助。
答案 0 :(得分:0)
这是我发现的解决方案,它很麻烦,但它现在可以完成这项工作,我从我的表中选择最新的DateTime作为对它进行排序以获取给定用户ID的最新结果的方法。
OleDbCommand commandUpdate = new OleDbCommand("UPDATE [Building_Login] SET Exited = '" + DateTime.Now + "' WHERE User_ID = @UserId AND Entered = (SELECT Top 1 Entered AS latest FROM [Building_Login] WHERE User_ID = @UserId ORDER BY Entered DESC)", connection);