0

我有 2 张桌子:

  1. 预订

    ID, DATE, TIME,TABLE

  2. 客户

    ID_CLIENT, FNAME, LNAME, EMAIL, PHONE,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

谁能帮助我如何将数据插入两个相关的表中。

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**);

这将允许您在第二个查询中使用 Inserted.Id,因为您已将输出返回到变量。

于 2013-09-05T17:39:24.790 回答