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

DataTable d1 = new DataTable();

DataTable d2 = new DataTable();


두 테이블이 있을때 d1의 행을 d2로 복사하는 코드

d2.Rows.Add(d1.Rows[0]);   이렇게 하면 아래와 같은 에러가 뜬다


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


이것은 테이블에 로우를 추가할때도 추가되는 로우는 각각의 객체가 아닌 주소만 복사되면서 발생하는 오류이다


해결방법 두가지 


1. d2.ImportRow(d1.Rows[0]); 


2. dt2.Rows.Add(dt1.Rows[0].ItemArray); 


두가지 방법이 모두 값을 모두 복사하는 방식이다

'C# Programming' 카테고리의 다른 글

C# partial 클래스의 디자인창 없애기  (0) 2019.02.13
C# String.Substring Method  (0) 2019.02.01
C# DataColumn.Expression  (0) 2018.12.18
c# SortableBindingList<T>  (0) 2018.12.17
C# 마우스로 폼이동하기  (0) 2018.12.08