在 MS Access 和 C# 中的同一查询中选择“和更新”
本文关键字:选择 更新 查询 和更新 Access MS | 更新日期: 2023-09-27 18:32:10
我想从 c# 应用程序选择和更新访问中访问的相同记录。像——
int personId=command.ExecuteScalar(
"Select Top 1 PersonId From Persons where IsLocked=false
AND UPDATE THE SELECTED ROW WITH IsLocked=true");
我必须要求在我的代码中选择和更新的 PersonId 值。
我在SO中看到了一些问题,但这些并不是我真正想要的。
有什么帮助吗?
我不清楚为什么你只抓取 personID 然后想更改不同的列,但要只更改返回的第一行,请尝试:
UPDATE P
SET IsLocked = True
FROM Persons P
WHERE PersonId = (SELECT top 1 PersonId FROM Persons WHERE IsLocked = False ORDER BY PersonId)
查询将使用 IsLock = False 更新第一个 PersonId(假设该人员未在表中多次列出)
Access SQL 不允许在单个查询中同时SELECT
和UPDATE
。
如果您在 Access 应用程序会话中执行此操作,则可以使用自定义 VBA 函数,该函数返回PersonId
并执行UPDATE
...然后从SELECT
查询调用该函数。 遗憾的是,不能在从 Access 应用程序会话外部运行的查询中使用自定义 VBA 函数。