2012-06-10 5 views
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를 선택한 위치에 놓아야합니다.

+0

값을 검색하는 방법은 MS 설명서를 참조하십시오. http://support.microsoft.com/kb/ 815629 –

답변

0

MS Access에서 "autoincrement"는 일반적으로 "ID"라고합니다. 특별한 @@IDENTITY 변수를 사용하여 마지막으로 삽입 된 ID 열의 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(); 
관련 문제