已知条件:
    表tab1有三个字段:tab1ID(主键,自动增加)、tab1fie1、tab1fie2。
    表tab2有四个字段:tab2ID(主键,自动增加)、tab2fie1、tab2fie2、tab1ID(外键,与tab1中的tab1ID字段建立外键约束关系)。    tab1,tab2均在dataSet中。
现在往tab1中加一条记录,tab2中加二条记录....
希望tab1中的tab1ID字段的值也自动更新到tab2中的tab1ID字段中去。有什么办法?谢谢

解决方案 »

  1.   

    附:我代码是这样写的,但tab2表中的字段tab1ID值为空!
    SqlDataAdapter sda1 = new SqlDataAdapter("select * from tab1;",sqlConnection1);
    SqlCommandBuilder scb1 = new SqlCommandBuilder(sda1);SqlDataAdapter sda2 = new SqlDataAdapter("select * from tab2",sqlConnection1);
    SqlCommandBuilder scb2 = new SqlCommandBuilder(sda2);

    DataSet ds = new DataSet();
    sda1.Fill(ds,"tab1");
    sda2.Fill(ds,"tab2");ForeignKeyConstraint fk = new ForeignKeyConstraint("fk1",ds.Tables["tab1"].Columns["tab1ID"],ds.Tables["tab2"].Columns["tab1ID"]);
    fk.UpdateRule = Rule.Cascade;
    ds.Tables["tab2"].Constraints.Add(fk);
    ds.EnforceConstraints = true;DataRow row1 = ds.Tables["tab1"].NewRow();
    row1["tab1fie1"] = "tab1fie1_1";
    row1["tab1fie2"] = "tab1fie2_1";DataRow row2 = ds.Tables["tab2"].NewRow();
    row2["tab2fie1"] = "tab2fie1_1";
    row2["tab2fie2"] = "tab2fie2_1";ds.Tables[0].Rows.Add(row1);
    ds.Tables[1].Rows.Add(row2);sda1.Update(ds,"tab1");
    sda2.Update(ds,"tab2");刚看ADO.NET,希望得到各位高手的提示,谢谢
      

  2.   

    我用的数据库是SQLSERVER2000,在上述的外键约束中已经设置了级联更新相关的字段等
      

  3.   

    以订单为例
    利用ADO.NET 的事务向主表插入 一条订单Order 返回自增列值OrderID, 
    向从表插入该订单明细OrderDetails(多条) 循环以上步骤,插入下一条订单事务结束插入主表的SQL
    INSERT INTO Order (……) VALUE (……); Select  @@identity//返回自增列值
    可以参考Petshop  也可以参考 Duwamish(实现方式稍有不同)
      

  4.   

    插入主表的SQL
    INSERT INTO Order (……) VALUE (……); Select  @@identity//返回自增列值如果这样的话,是手工写这些,听说DataSet非常强大能否设置一些ForeignKeyConstraint 之类的东西 让它自己填充呢???
    :)
      

  5.   

    在MSDN上我还真没找到这方面的
    这几天看ADO.NET 可是泡在MSDN上的。。
      

  6.   

    《ADO.NET中的多数据表操作浅析—修改 》
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx