2012-06-10 162 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(); 
相關問題