0

私は2つのテーブルを持っています:

  1. 予約

    IDDATETIMETABLE

  2. クライアント

    ID_CLIENTFNAMELNAMEEMAILPHONE_FK_RESERVATION

予約テーブルのワーキングINSERTステートメントがあります-

 string insertSql = "INSERT INTO Rezervacija (date,time,table) VALUES (@date,@time,@table);
 SqlCommand cmd = new SqlCommand(insertSql, con);

 cmd.Parameters.AddWithValue("@date", txtDate.Text);
 cmd.Parameters.AddWithValue("@time", ddlTime.SelectedItem.Text);
 cmd.Parameters.AddWithValue("@table", ddlTable.SelectedItem.Text);

しかし、問題はINSERT INTO Client Table Foreign Key.

2 つの関連するテーブルにデータを挿入する方法を教えてください。

4

1 に答える 1

2

挿入した行の ID を取得するには、クエリを変更する必要があります。

string insertSql = "INSERT INTO Rezervacija (date,time,table) OUTPUT INSERTED.Id VALUES (@date,@time,@table);"
 SqlCommand cmd = new SqlCommand(insertSql, con);

 cmd.Parameters.AddWithValue("@date", txtDate.Text);
 cmd.Parameters.AddWithValue("@time", ddlTime.SelectedItem.Text);
 cmd.Parameters.AddWithValue("@table", ddlTable.SelectedItem.Text);

var **reservationId** = (int)cmd.ExecuteScalar()

string insertSql2 = "INSERT INTO CLIENT (ID_CLIENT,FNAME,LNAME,EMAIL,PHONE,FK_RESERVATION) VALUES (@clientId, @fname, @lname, @email, @phone, @reservation"

SqlCommand cmd2 = new SqlCommand(insertSql2, con);
cmd.Parameters.AddWithValue("@clientId", clientId);
cmd.Parameters.AddWithValue("@fname", fname);
cmd.Parameters.AddWithValue("@lname", lname);
cmd.Parameters.AddWithValue("@email", email);
cmd.Parameters.AddWithValue("@phone", phone);
cmd.Parameters.AddWithValue("@reservation", **reservationId**);

これにより、出力を変数に返したので、2 番目のクエリで Inserted.Id を使用できるようになります。

于 2013-09-05T17:39:24.790 に答える