IT정보공유/C#

c# DataTable DataRow 복사 - 이 행은 이미 다른 테이블에 속해 있습니다.

알지오™ 2020. 5. 27.

저는 개발할때 DataTable을 많이 사용합니다.
그러다 보니 DataTable과 DataRow를 자주 이용하게 되는데
DataTable과 DataTable에서 레코드 하나를 복사하거나 데이터테이블에 속해있는 로우의 순서를
바꾸려고 할때 다음과 같은 에러를 만날 수 있습니다.

 

 

System.ArgumentException: '이 행은 이미 다른 테이블에 속해 있습니다.'

 

예를 들어 로우의 순서를 바꾸기 위해서 기존 데이터테이블인 _dtList를 복사 해서 
DataRow를 다시 추가 하려고 할때 에러메세지가 발생합니다.

 

DataRow[] drlist = _dtList.Copy().Select("1=1", "SortNo asc");

_dtList.Clear();

for(int i=0;i<drlist.Length;i++)
{
    _dtList.Rows.Add(drlist[i]); //이 부분에서 이 행은 이미 다른 테이블에 속해 있습니다. 오류 발생
}

 

이 때에는 간단하게 Rows.Add() 함수 대신, ImportRow() 함수를 호출하면 됩니다.

 

_dtList.ImportRow(drlist[i]);			

 

 

문제 해결!

댓글

💲 추천 글