在一个dataset中 我定义了两的datatable。之间建立了关联。files = myDataSet.Tables.Add("files");
entities = myDataSet.Tables.Add("entities");
myDataSet.Relations.Add("entities", files.Columns["File Name"], entities.Columns["File Name"]);当我想把"files" 中的部分数据删除时,"entities"中的数据也自动删除了。            int b = myDataSet.Tables["files"].Rows.Count;
            for (int i = 6; i <= b - 1; i++)
            {
                dr = myDataSet.Tables["files"].Rows[a];
                myDataSet.Tables["files"].Rows.Remove(dr);
            }怎样才能删掉"files"中的数据,而保留"entities"中的数据。我试着在 for执行前,解除关联。
myDataSet.Relations.Remove("entities");但没有成功。哪位高手有办法啊。

解决方案 »

  1.   

    Relation 是靠2个约束关联的看看子约束上的 DeleteRule 属性.
      

  2.   

    myDataSet.EnforceConstraints=false
    看看?
    不过你既然不希望检查,为何还要建立关系?
      

  3.   

    ds.Relations.IsSynchronized=false;
    设置一下这个属性试试。
      

  4.   

    多谢各位的提示,我是这样解决的。myDataSet.Tables["entities"].Constraints.Remove("entities");
    int b = myDataSet.Tables["files"].Rows.Count;
    for (int i = 6; i <= b - 1; i++)
    {
        dr = myDataSet.Tables["files"].Rows[a];
        myDataSet.Tables["files"].Rows.Remove(dr);
    }
    myDataSet.Tables["entities"].Constraints.Add("entities", myDataSet.Tables["files"].Columns["File Name"], myDataSet.Tables["entities"].Columns["File Name"]);删除数据后,关联又能再加上。