插入两个表

时间:2013-09-05 17:31:36

标签: c# sql sql-server

我有两张桌子:

  1. 预订

    IDDATETIMETABLE

  2. 客户

    ID_CLIENTFNAMELNAMEEMAILPHONEFK_RESERVATION

  3. 我在预订表中有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

    任何人都可以帮我解决如何将数据插入两个相关表格的问题。

1 个答案:

答案 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,因为您已将输出返回到变量。