繁体   English   中英

如何在多列的DataSet的DataTable之间定义DataRelation?

[英]How do I define a DataRelation between a DataSet's DataTables on multiple columns?

在我的项目中,有两个数据表dtNamesdtDetails

我不了解SQL。 在这里,我将连接到XML和Textfiles。

dtNames

EmpName    EmpRole

   a         2
   b         3
   c         4

dtDetails

 Empid     EmpName   EmpCity   EmpRole

  101        a         abc       3  //EmpRole not equal to above table EmpRole
  102        b         abc       3
  103        c         xyz       4
  104        d         pqr       5
  105        e         rst       6

我想涉及基础上,这两个数据表EmpNameEmpRole (这里比较dtNames )和DataSet中结果存储dsMain (从表dtDetails ),然后除以两个DataTable中根据像比较matchedDataTableunmatchedDataTable

我知道这可以使用DataRelationRowFilter来完成,但是我不知道该怎么做,因为有两列要与其他我不知道的数据表进行比较。(我是.net的初学者)

我尝试了以下代码:( 不起作用

            DataSet dsMain = new DataSet();
            DataRelation newRelation = new DataRelation("processData"
                , dtNames.Columns["EmpName"], dtDetails.Columns["EmpName"]);
            dsMain.Relations.Add(newRelation);

如您所见,在上面的代码中,我只是将一列与另一列进行比较。 如何与两个比较。 我很近

请协助。

使用接受列数组的构造函数:

DataSet dsMain = new DataSet();
DataRelation newRelation = new DataRelation("processData",
    new DataColumn[] { dtNames.Columns["EmpName"], dtNames.Columns["EmpRole"] },
    new DataColumn[] {dtDetails.Columns["EmpName"], dtDetails.Columns["EmpRole"]}
);
dsMain.Relations.Add(newRelation);

您是否检查了DataRelation的可能构造函数?

只需传递一个DataColumn数组,就可以合并多个列。 像这样:

DataRelation newRelation = new DataRelation("test", new DataColumn[] { dt1.Columns[0], dt1.Columns[1] },
                                                    new DataColumn[] { dt2.Columns[0], dt2.Columns[1] });

暂无
暂无

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

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