【问题标题】:Insert into multiple tables using INSERT_IDENTITY - ADO.Net使用 INSERT IDENTITY 插入多个表 - ADO.Net
【发布时间】:2016-12-27 10:16:38
【问题描述】:

我想用 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);

...

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

【问题讨论】:

  • 先完成你的问题,然后点击“发布”按钮。
  • 我完全问了问题
  • OR ..... 呢??
  • 使用 ADO.Net 的任何其他方式

标签: c# sql-server ado.net


【解决方案1】:

为第一个表添加插入 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

【讨论】:

  • 你能写一个例子吗?
猜你喜欢
  • 1970-01-01
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多