在 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中看到了一些问题,但这些并不是我真正想要的。

有什么帮助吗?

在 MS Access 和 C# 中的同一查询中选择“和更新”

我不清楚为什么你只抓取 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 不允许在单个查询中同时SELECTUPDATE

如果您在 Access 应用程序会话中执行此操作,则可以使用自定义 VBA 函数,该函数返回PersonId并执行UPDATE ...然后从SELECT查询调用该函数。 遗憾的是,不能在从 Access 应用程序会话外部运行的查询中使用自定义 VBA 函数。