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 を配置する必要があります。

4

1 に答える 1

0

MS Access では、「自動インクリメント」は通常「ID」と呼ばれます。特殊@@IDENTITY変数を使用して、最後に挿入された ID 列の ID を取得できます。新しい ID がわかったら、次のように 2 番目の挿入でパラメーターとして追加できます。

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();
于 2012-06-10T12:59:03.697 に答える