한 Datatable에서 다른 DataTable로 행을 복사 하시겠습니까?
C #에서 DataTable의 특정 행을 다른 Datable로 복사하는 방법은 무엇입니까? 둘 이상의 행이 있습니다.
foreach (DataRow dr in dataTable1.Rows) {
if (/* some condition */)
dataTable2.Rows.Add(dr.ItemArray);
}
위의 예는 가정 dataTable1
및 dataTable2
동일한 수의 열을 입력 순서를 갖는다.
지정된 행을 테이블에서 다른 행으로 복사
// here dttablenew is a new Table and dttableOld is table Which having the data
dttableNew = dttableOld.Clone();
foreach (DataRow drtableOld in dttableOld.Rows)
{
if (/*put some Condition */)
{
dtTableNew.ImportRow(drtableOld);
}
}
이 시도
String matchString="ID0001"//assuming we have to find rows having key=ID0001
DataTable dtTarget = new DataTable();
dtTarget = dtSource.Clone();
DataRow[] rowsToCopy;
rowsToCopy = dtSource.Select("key='" + matchString + "'");
foreach (DataRow temp in rowsToCopy)
{
dtTarget.ImportRow(temp);
}
이것을 확인하십시오, 당신은 그것을 좋아할지도 모릅니다 (이전에는 table1을 table2로 복제하십시오) :
table1.AsEnumerable().Take(recodCount).CopyToDataTable(table2,LoadOption.OverwriteChanges);
또는:
table1.AsEnumerable().Where ( yourcondition ) .CopyToDataTable(table2,LoadOption.OverwriteChanges);
4, 3.5 SP1에서 지원되므로 이제 객체에서 메소드를 호출 할 수 있습니다.
DataTable dataTable2 = dataTable1.Copy()
다른 게시물의 결과로 이것이 내가 얻을 수있는 가장 짧은 것입니다.
DataTable destTable = sourceTable.Clone();
sourceTable.AsEnumerable().Where(row => /* condition */ ).ToList().ForEach(row => destTable.ImportRow(row));
아래 샘플은 한 행을 복사하는 가장 빠른 방법입니다. 각 셀은 열 이름을 기준으로 복사됩니다. 복사 할 특정 셀이 필요하지 않은 경우 try catch를 추가하거나 if를 추가하십시오. 둘 이상의 행을 복사하려는 경우 아래 코드를 반복하십시오.
DataRow dr = dataset1.Tables[0].NewRow();
for (int i = 0; i < dataset1.Tables[1].Columns.Count; i++)
{
dr[dataset1.Tables[1].Columns[i].ColumnName] = dataset1.Tables[1].Rows[0][i];
}
datasetReport.Tables[0].Rows.Add(dr);
데이터 세트 1. 테이블 [1]. 행 [ 0 ] [i]; 인덱스 0을 지정된 행 인덱스로 변경하거나 루프하거나 논리적 인 경우 변수를 사용할 수 있습니다.
private void CopyDataTable(DataTable table){
// Create an object variable for the copy.
DataTable copyDataTable;
copyDataTable = table.Copy();
// Insert code to work with the copy.
}
단일 명령 SQL 쿼리를 원하는 사람들을 위해 :
INSERT INTO TABLE002
(COL001_MEM_ID, COL002_MEM_NAME, COL002_MEM_ADD, COL002_CREATE_USER_C, COL002_CREATE_S)
SELECT COL001_MEM_ID, COL001_MEM_NAME, COL001_MEM_ADD, COL001_CREATE_USER_C, COL001_CREATE_S
FROM TABLE001;
이 쿼리는 데이터를 복사 할 TABLE001
에 TABLE002
우리는 모두 열이 다른 열 이름을 가지고 있다고 가정합니다.
열 이름은 다음과 같이 일대일로 매핑됩니다.
COL001_MEM_ID-> COL001_MEM_ID
COL001_MEM_NAME-> COL002_MEM_NAME
COL001_MEM_ADD-> COL002_MEM_ADD
COL001_CREATE_USER_C-> COL002_CREATE_USER_C
COL002_CREATE_S-> COL002_CREATE_S
조건이 필요한 경우 where 절을 지정할 수도 있습니다.
전체 데이터 테이블을 복사하려면 다음을 수행하십시오.
DataGridView sourceGrid = this.dataGridView1;
DataGridView targetGrid = this.dataGridView2;
targetGrid.DataSource = sourceGrid.DataSource;
참고 URL : https://stackoverflow.com/questions/4020270/copy-rows-from-one-datatable-to-another-datatable
'Programming' 카테고리의 다른 글
다차원 배열의 너비와 높이를 어떻게 얻습니까? (0) | 2020.06.12 |
---|---|
반응 양식의 소품 변경 상태 업데이트 (0) | 2020.06.12 |
함수 선언은 프로토 타입이 아닙니다 (0) | 2020.06.12 |
if () {}와 if ()의 차이점 : endif; (0) | 2020.06.09 |
안드로이드에서 android : weightSum은 무엇이며 어떻게 작동합니까? (0) | 2020.06.09 |