使用相同的ID更新OleDbCommand中的最后一个条目

时间:2015-03-08 23:43:30

标签: c# sql database ms-access

我正在尝试更新名为“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);

非常感谢任何帮助。

1 个答案:

答案 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);