使用数据集在数据库中的多个表中插入行

时间:2016-01-08 10:11:33

标签: c# ado.net dataset

作为操作的结果,我们的数据库中有几个表的新数据行。通过在数据行中为主键和外键使用唯一的负数来确保参照完整性。

我写了下面的例子来模拟情况:

using (var con = new SqlConnection("ConnectionString"))
{  

 using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Users where 1=0;SELECT * FROM Address where 1=0;", con))
{
    adapter.TableMappings.Add("Table", "Users");
    adapter.TableMappings.Add("Table1", "Address");

    var ds = new DataSet();
    using (var commandBuilder = new SqlCommandBuilder(adapter))
    {
        adapter.Fill(ds);
        //--------------------
        var userRow = ds.Tables["Users"].NewRow();
        var addressRow = ds.Tables["Address"].NewRow();

        //userRow
        userRow["UserId"] = -1;
        userRow["FirstName"] = "F1";
        userRow["LastName"] = "L1";

        //addressRow
        addressRow["AddressId"] = -2;
        addressRow["UserId"] = -1;
        addressRow["Street"] = "S1";

        ds.Tables["Users"].Rows.Add(userRow);
        ds.Tables["Address"].Rows.Add(addressRow);

        adapter.Update(ds);
    }
}
}

但这仅插入用户表中的行,因为第一个选择查询属于此表。

有关此要求的任何想法或解决方案?

0 个答案:

没有答案