2009-04-07 10 views
0

私はこのように定義された2つのデータテーブルを持っています。DataTableの交差操作

薄暗いDB1、新しいデータテーブルとしてDB2

DB1とDB2ホールド異なるクエリからの結果が、両方の列はまったく同じです。 db1とdb2の両方にあるレコードで構成される別のデータテーブルを作成したいと思います。つまり、2つのデータセットの共通部分が必要です。これを行う簡単な方法はありますか?

(結果のデータテーブルは、GridViewのを移入するために使用されます。)

答えて

0

あなたがVB.NET with LINQを使用している場合はこのようにそれを行うことができます:

Dim db3 = db1.Intersect(db2) 

そこから自分のGridViewを移入しDB3を使用しています。

2

この方法で試すことができます。

 // Declare Data Table and Data View 
     DataTable dt1 = new DataTable(); 
     DataTable dt2 = new DataTable(); 
     DataTable dt3 = new DataTable(); 
     DataTable dtTemp = new DataTable(); 
     DataView dv = new DataView(); 

     dt1.Columns.Add("Col1"); 
     dt1.Columns.Add("Col2"); 
     dt1.Columns.Add("Col3"); 

     dt2.Columns.Add("Col1"); 
     dt2.Columns.Add("Col2"); 
     dt2.Columns.Add("Col3"); 

     // Initialize Data Table and Data View 

     dt1.Rows.Add("A", "B", "C"); // Testing data for data table 1; actual data will come from your query 
     dt1.Rows.Add("E", "F", "G"); //         == 

     dt2.Rows.Add("A", "B", "C"); 
     dt2.Rows.Add("U", "V", "W");// Testing data for data table 2; actual data will come from your query 
     dt2.Rows.Add("X", "Y", "Z");//         == 


     // Merge Data Table into temporary Data Table 
     dtTemp = dt1; //Initialize dt1 value in to dtTemp 
     dtTemp.Merge(dt2);// Merge it with dt2 you will get the 

     // Use Data View to get disticnt values 
     dv = new DataView(dtTemp); 
     dt3 = dv.ToTable(true, "Col1", "Col2", "Col3");// Remember, it is for intersection not for union