使用 INSERT_IDENTITY - ADO.Net 插入多个表
Insert into multiple tables using INSERT_IDENTITY - ADO.Net
我想用 ADO.NET 在多个 table 中插入记录。
我想将一条新记录插入到名为 Professionals 的 table 中。它有一个映射到不同 table 的外键。
tables:
示例:
cmd.CommandText = "insert T_Name select (Name.T_Name,Date.T_Name,DId.Date) values (@N,GETDATE(),???)from T_Name inner join Date ON Date.DId=T_Name.DId; ";
cmd.Parameters.AddWithValue("@N", txt_Name.Text);
或
...
如何一次向这些 table 添加值?
添加后插入 sql 第一个 table
SELECT SCOPE_IDENTITY();
然后您将获得最后插入的 ID。您可以使用第二个 sql 参数。
示例:
var dateNow = DateTime.Now;
var cmd = new SqlCommand("INSERT INTO Date (Date) VALUES (@Date);SELECT SCOPE_IDENTITY();", cnn);
cmd.Parameters.AddWithValue("@Date", dateNow);
var insertedId = cmd.ExecuteScalar();
cmd = new SqlCommand("INSERT INTO T_Name (Name,Date,DId) VALUES (@Name,@Date,@DId);", cnn);
cmd.Parameters.AddWithValue("@Name", "Test");
cmd.Parameters.AddWithValue("@Date", dateNow);
cmd.Parameters.AddWithValue("@DId", insertedId);
cmd.ExecuteNonQuery(); //or ExecuteScalar() for get last insertedId
我想用 ADO.NET 在多个 table 中插入记录。
我想将一条新记录插入到名为 Professionals 的 table 中。它有一个映射到不同 table 的外键。 tables:
示例:
cmd.CommandText = "insert T_Name select (Name.T_Name,Date.T_Name,DId.Date) values (@N,GETDATE(),???)from T_Name inner join Date ON Date.DId=T_Name.DId; ";
cmd.Parameters.AddWithValue("@N", txt_Name.Text);
或
...
如何一次向这些 table 添加值?
添加后插入 sql 第一个 table
SELECT SCOPE_IDENTITY();
然后您将获得最后插入的 ID。您可以使用第二个 sql 参数。
示例:
var dateNow = DateTime.Now;
var cmd = new SqlCommand("INSERT INTO Date (Date) VALUES (@Date);SELECT SCOPE_IDENTITY();", cnn);
cmd.Parameters.AddWithValue("@Date", dateNow);
var insertedId = cmd.ExecuteScalar();
cmd = new SqlCommand("INSERT INTO T_Name (Name,Date,DId) VALUES (@Name,@Date,@DId);", cnn);
cmd.Parameters.AddWithValue("@Name", "Test");
cmd.Parameters.AddWithValue("@Date", dateNow);
cmd.Parameters.AddWithValue("@DId", insertedId);
cmd.ExecuteNonQuery(); //or ExecuteScalar() for get last insertedId