我正在使用新注册用户更新数据库。然后他们将获得一个用户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放入所选的位置。
答案 0 :(得分: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();