C# 插入到两个表中
我有两张桌子:C# 插入到两个表中,c#,sql,sql-server,C#,Sql,Sql Server,我有两张桌子: 保留地 ID,日期,时间,表格 客户 ID\u客户端,FNAME,LNAME,电子邮件,电话,FK\u预约 我有预订表的工作INSERT语句- string insertSql = "INSERT INTO Rezervacija (date,time,table) VALUES (@date,@time,@table); SqlCommand cmd = new SqlCommand(insertSql, con); cmd.Parameters.AddW
ID
,日期
,时间
,表格
ID\u客户端
,FNAME
,LNAME
,电子邮件
,电话
,FK\u预约
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);
但问题在于插入到客户机表外键中
谁能帮助我如何将数据插入到两个相关的表中。您需要修改查询以获取刚才插入的行的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。您使用的是哪个数据库系统?Oracle?我猜您的问题可能与从
客户端
到保留
的外键约束有关。你知道外键是什么以及它们是如何工作的吗?我使用的是SQL Server我忘了添加,TABLE是SQL中的一个关键字,所以你必须将它改为[TABLE]。