C# 将一个ComColumn的最大值从一个表插入到另一个表

C# 将一个ComColumn的最大值从一个表插入到另一个表,c#,sql,ms-access-2007,C#,Sql,Ms Access 2007,我正在用新的注册用户更新数据库。然后会给他们一个用户ID。我想在更新另一个表中的位置时使用该编号。但是我不知道用户id是什么。(这是一个自动递增的数字)所以我想我应该更新第一个表。然后选择最大用户id并将该id作为位置用户id插入另一个表中,但我无法使其工作 这是代码 String StrSQL = "INSERT INTO Fastelejer (Fornavn,Efternavn) VALUES ('" + fornavn + "','" + Efternavn + "')";

我正在用新的注册用户更新数据库。然后会给他们一个用户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;
pladsnumer表示其位置的输入。因此,注册应将用户id放入所选位置。

在MS Access中,“自动增量”通常称为“标识”。您可以使用特殊的
@@IDENTITY
变量来检索上次插入的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();

有关如何检索值,请参阅此处的MS文档