2011-05-06 69 views
0

我有兩個名爲dataset1 dataset2的數據集。我想把他們之間的左外部連接關係。數據集之間的左外部連接關係

如:DataSet1的左外連接dataset2

+3

您的意思是兩個數據集或數據表?顯示一些代碼,這將幫助我們分析您已經嘗試了多少。 – 2011-05-06 22:58:44

回答

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方法,然後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"]); 
2

您只能在同一個DataSet中的兩個表之間創建DataRelation。您需要做的是使用合併方法將兩個數據集合在一起,例如

DataSet1.Merge(DataSet2) 

然後你就可以通過運行

DataSet1.Relations.Add(new DataRelation("myRelationship",DataTable1.Columns("ID"),DataTable2.Columns("ID"))) 
0

如果你只是需要結果,我會建議使用LINQ to DataSets,它允許你使用任何LINQ操作符來查詢和連接兩個DataTables/DataSets。

Erick