我有两个名为dataset1,dataset2的数据集。我想在它们之间放置左外连接关系。
例如:dataset1 left outer join dataset2
答案 0 :(得分:3)
你的问题有点不清楚,所以至少有两个可能的答案。
如果您确实有两个不同的DataSet
s,并且他们需要保持独立的DataSet
,那么您可以使用LINQ(with Linq to DataSet)来创建左外连接。这里有几篇博客文章解释了如何使用LINQ(one和two)创建左外连接。您的代码可能看起来像
var joinResult = from ds1Row in dataset1.Tables["some table"]
join ds2Row in dataset2.Tables["some other table"]
on ds1Row.Field<T>("some column") equals ds2Row.Field<T>("some other column") into tmpResult
from resultRow in tmpResult.DefaultIfEmpty()
select // select whatever information you want
;
如果您真的想要在两个DataTable
s之间进行连接,或者您可以使用Merge方法将两个DataSet组合到一个DataSet中,然后create a relationship between any two tables。您的代码将看起来像:
mergedDataset.Relations.Add("relation name",
mergedDataset.Tables["some table"].Columns["some column"],
mergedDataset.Tables["some other table"].Columns["some other column"]);
答案 1 :(得分:2)
您只能在同一DataSet中的两个表之间创建DataRelation。您需要做的是使用Merge方法将两个数据集放在一起,例如。
DataSet1.Merge(DataSet2)
然后,您可以通过运行
在两个表之间创建DataRelationDataSet1.Relations.Add(new DataRelation("myRelationship",DataTable1.Columns("ID"),DataTable2.Columns("ID")))
答案 2 :(得分:0)
INNER JOIN, LEFT OUTER JOINS and RIGHT OUTER JOIN for DataTables
链接有一个很好的vb程序,可以进行外连接。如果您在vb.net中使用它,可以使用它,检查出来。
DataTable Relational Operators in C# - JOIN Method
这两个代码都是自我解释的,正如Duncan所说,你只能使用数据表而不是使用两个独立的数据集。
答案 3 :(得分:0)
如果您只需要结果,我建议使用LINQ to DataSets,它允许您使用任何LINQ运算符来查询和连接两个DataTables / DataSet。
埃里克