저는 개발할때 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]);
문제 해결!
댓글