0

我正在使用新的注册用户更新数据库。然后他们将获得一个用户 ID。我想在另一个表中更新位置时使用该数字。但我不知道用户 ID 是什么。(它是自动增量数字)所以我想我会更新第一个表。然后选择最大用户 id 并将该 id 作为位置用户 id 插入另一个表中,但我无法让它工作。

这是代码。

String StrSQL = "INSERT INTO Fastelejer (Fornavn,Efternavn) VALUES ('" + fornavn + "','" +      
Efternavn +  "')";
OleDbCommand InsertCommand = new OleDbCommand(StrSQL, conn);
InsertCommand.ExecuteNonQuery(); 
StrSQL = "INSERT INTO Bådpladser (Fastelejerid) SELECT MAX (Fastelejerid) FROM    
StrSQL = "INSERT INTO Bådpladser (Fastelejerid) SELECT MAX (Fastelejerid)FROM
Fastelejer WHERE Pladsnummer = " + Pladsnummer;

pladsnummer 代表其位置的输入。所以注册应该把用户ID放到选择的位置。

4

1 回答 1

0

在 MS Access 中,“自动增量”通常称为“身份”。您可以使用特殊@@IDENTITY变量来检索最后插入的标识列的 ID。知道新 ID 后,您可以将其作为参数添加到第二次插入中,例如:

command.CommandText = "INSERT Table1 (...) values (...); SELECT @@IDENTITY";
var identity = (int) command.ExecuteScalar();
command.CommandText = "INSERT Table2 (user_id, ...) VALUES (@user_id, ...)";
command.Parameters.AddWithValue("@user_id", identity);
command.ExecuteNonQuery();
于 2012-06-10T12:59:03.697 回答