[C#] 한 Datatable에서 다른 DataTable로 행을 복사 하시겠습니까?

C #에서 DataTable의 특정 행을 다른 Datable로 복사하는 방법은 무엇입니까? 둘 이상의 행이 있습니다.



답변

foreach (DataRow dr in dataTable1.Rows) {
    if (/* some condition */)
        dataTable2.Rows.Add(dr.ItemArray);
}

위의 예는 가정 dataTable1dataTable2동일한 수의 열을 입력 순서를 갖는다.


답변

지정된 행을 테이블에서 다른 행으로 복사

// 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을 지정된 행 인덱스로 변경하거나 루프하거나 논리적 인 경우 변수를 사용할 수 있습니다.