2017-09-13 18 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;';"); 

을 만들었습니다, 열 B, 열이 나는 .MDB C#을 windowform에서 나는 DataTable을 "DT"를 만든 파일

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

및 위해 OleDbDataAdapter 사용하여 작성 (쿼리를 사기)에 대한 다른는 OleDbConnection을 만들었습니다. 내 "DT"표는 내가 채울 위해 OleDbDataAdapter 모두 연결을 사용할 수 있습니다 어떻게
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

을 가지고 있으며, 어떤 연결 ⅰ) (오픈()와 가까이 사용합니다. 내 두 연결은 별도로 작동합니다. 내 기준 열 B는 수동 여기 병합을 수행 할 필요가

+0

처럼하려고합니다. 따라서 첫 번째 인스턴스에는 두 개의 DataTable이 필요합니다. 하나의 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); 
}