私はこのように定義された2つのデータテーブルを持っています。DataTableの交差操作
薄暗いDB1、新しいデータテーブルとしてDB2
DB1とDB2ホールド異なるクエリからの結果が、両方の列はまったく同じです。 db1とdb2の両方にあるレコードで構成される別のデータテーブルを作成したいと思います。つまり、2つのデータセットの共通部分が必要です。これを行う簡単な方法はありますか?
(結果のデータテーブルは、GridViewのを移入するために使用されます。)
私はこのように定義された2つのデータテーブルを持っています。DataTableの交差操作
薄暗いDB1、新しいデータテーブルとしてDB2
DB1とDB2ホールド異なるクエリからの結果が、両方の列はまったく同じです。 db1とdb2の両方にあるレコードで構成される別のデータテーブルを作成したいと思います。つまり、2つのデータセットの共通部分が必要です。これを行う簡単な方法はありますか?
(結果のデータテーブルは、GridViewのを移入するために使用されます。)
あなたがVB.NET with LINQを使用している場合はこのようにそれを行うことができます:
Dim db3 = db1.Intersect(db2)
そこから自分のGridViewを移入しDB3を使用しています。
この方法で試すことができます。
// 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