数据集之间的左外连接关系

时间:2011-05-06 22:56:07

标签: .net ado.net

我有两个名为dataset1,dataset2的数据集。我想在它们之间放置左外连接关系。

例如:dataset1 left outer join dataset2

4 个答案:

答案 0 :(得分:3)

你的问题有点不清楚,所以至少有两个可能的答案。

如果您确实有两个不同的DataSets,并且他们需要保持独立的DataSet,那么您可以使用LINQwith Linq to DataSet)来创建左外连接。这里有几篇博客文章解释了如何使用LINQ(onetwo)创建左外连接。您的代码可能看起来像

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
                 ;

如果您真的想要在两个DataTables之间进行连接,或者您可以使用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)

然后,您可以通过运行

在两个表之间创建DataRelation
DataSet1.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。

埃里克