我有两张桌子:
预订
ID
,DATE
,TIME
,TABLE
客户
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
。
任何人都可以帮我解决如何将数据插入两个相关表格的问题。
答案 0 :(得分: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,因为您已将输出返回到变量。