2017-09-13 11 views
0

OledbConnections、列B、列Cなどで一つのテーブルを記入し、私は私が1列と他のAccessデータベースファイルを持っているOleDbConnectionオブジェクト複数の私はExcelが列Aにファイルを持っているC#

Con1 = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Extended Properties=\'Excel 12.0;';"); 

を作成しています、 .MDBファイルの列B、列2と私は他のOleDbConnectionオブジェクトを作成した

Con2 = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Persist Security Info=True;"); 

私はC#のwindowformにDataTableの "DT" を作成し、OleDbDataAdapterおよ(クエリ、CON)を使用して、それを埋めてきました。私の「DT」テーブル)(
Column B Column A Column C Column 1 Column 2 Table 1(data) Table 1(data) Table 1(data) Table 2(data) Table 2(data) Con1 Con1 Con1 Con2 Con2

どのように私は(オープン使う埋めるためにOleDbDataAdapterおよにおける接続の両方を使用して接続することができますがあります)と近接しています。私の両方の接続は別々に動作しています。私の基準列Bは、手動でここにマージを実行する必要が

+0

のようにしてみてください。したがって、最初のインスタンスでは2つのDataTableが必要です。それらを1つのDataTableに結合する場合は、それを自分で処理する必要があります。 –

答えて

0

表1にある、あなたが唯一の接続から埋めることができ、この

var collection = from t1 in dt1.AsEnumerable() 
       join t2 in dt2.AsEnumerable() 
        on t1["id"] equals t2["id"] 
       select new { Name = t1["id"], Group = t2["Name"] }; 

DataTable result = new DataTable("NameGroups"); 
result.Columns.Add("ID", typeof(string)); 
result.Columns.Add("Name", typeof(int)); 

foreach (var item in collection) 
{ 
    result.Rows.Add(item.ID, item.Name); 
} 
関連する問題