2012-06-10 161 views
0

我正在用新的注册用户更新数据库。他们将会被赋予一个用户名。在另一个表中更新那里位置时,我想使用该数字。但我不知道用户名是什么。 (这是自动增加数)所以我想我会更新第一个表。然后选择最大的用户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代表他们的位置输入。因此,注册应该将用户标识放入所选位置。

+0

请参阅MS文档,了解如何检索值http://support.microsoft.com/kb/ 815629 –

回答

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(); 
相关问题