2009-05-13 3 views
30

하나의 DataTable을 다른 DataTable에 추가하고 싶습니다. DataTable 클래스에는 두 가지 메서드가 있습니다. "로드 (IDataReader)"및 "병합 (DataTable)". 이 문서에서 행이 존재할 경우 들어오는 데이터를 기존 DataTable과 '병합'하는 것으로 나타납니다. 데이터 액세스 레이어에서 병합을 수행 할 것입니다.하나의 DataTable을 다른 DataTable에 추가하는 방법

나는 IDataReader를 사용하고 Load 메서드를 사용하여 DataTables를 병합 할 수있었습니다. 또는 IDataReader를 사용하여 DataSet을로드하고, DataSet에서 DataTable을 가져온 다음 Merge 메서드를 사용하여 DataTables를 병합 할 수 있습니다.

누군가 적절한 사용법을 말해 줄 수 있는지 궁금합니다.

또는이 작업을 수행하는 방법에 대한 다른 제안 사항이 있으면 알려주십시오.

답변

40

병합에는 DataTable이 필요하며로드에는 IDataReader가 필요합니다. 따라서 데이터 레이어가 액세스 권한을 부여한 방식에 따라 필요한 방법을 사용하십시오. 나의 이해는 부하가 내부적으로 Merge를 호출하지만 100 % 확신하지는 않는다.

두 개의 DataTable이있는 경우 병합을 사용하십시오.

14

DataAdapter 작업을 수행 할 수 있습니다. DataAdapter.Fill(DataTable)DataTable의 기존 행에 새 행을 추가합니다.

+2

바로 이곳에 대한 답을 –

+1

힘들게 만듭니다. 오케이! – ashubuntu

35

동일한 열 이름의 데이터 유형은 같아야합니다.

dataTable1.Merge(dataTable2); 

그 후 결과는 다음과 같습니다

dataTable1 = dataTable1 + dataTable2

+0

내 시간을 절약 해 주셔서 감사합니다. – destinydz

4

필요에 따라 datatables를 포함하는 두 개의 데이터 세트가, 지금은 병합합니다 추가

DataSet ds1 = new DataSet(); 
DataSet ds2 = new DataSet(); 

DataTable dt1 = new DataTable(); 
dt1.Columns.Add(new DataColumn("Column1", typeof(System.String))); 

DataRow newSelRow1 = dt1.NewRow(); 
newSelRow1["Column1"] = "Select"; 
dt1.Rows.Add(newSelRow1); 

DataTable dt2 = new DataTable(); 
dt2.Columns.Add(new DataColumn("Column1", typeof(System.String))); 

DataRow newSelRow2 = dt1.NewRow(); 
newSelRow2["Column1"] = "DataRow1Data"; // Data 
dt2.Rows.Add(newSelRow2); 

ds1.Tables.Add(dt1); 
ds2.Tables.Add(dt2); 

ds1.Tables[0].Merge(ds2.Tables[0]); 

이제 DS1이있을 것이다 병합 된 데이터

+0

똑같은 일을하는 쉬운 방법과 내장 된 방법이 있으면 열심히 할 필요가 없습니다. 이미 프로그래머로서 엄청난 압박을 받았다. :) – ashubuntu

관련 문제