[英]How do I define a DataRelation between a DataSet's DataTables on multiple columns?
在我的项目中,有两个数据表dtNames
和dtDetails
。
我不了解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
我想涉及基础上,这两个数据表EmpName
和EmpRole
(这里比较dtNames
)和DataSet中结果存储dsMain
(从表dtDetails
),然后除以两个DataTable中根据像比较matchedDataTable
和unmatchedDataTable
。
我知道这可以使用DataRelation或RowFilter来完成,但是我不知道该怎么做,因为有两列要与其他我不知道的数据表进行比较。(我是.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.