繁体   English   中英

使用INSERT_IDENTITY插入多个表-ADO.Net

[英]Insert into multiple tables using INSERT_IDENTITY - ADO.Net

我想使用ADO.NET将记录插入多个表中。

我想将新记录插入到名为Professionals的表中。 它具有映射到其他表的外键。 表格:

桌子

例:

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

要么

...

如何一次将值添加到这些表中?

添加后为第一个表插入sql

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM