오늘은 삽질을 꽤나 오래 했다.
DataGridView 간 DataRow를 이동시키려고 했는데 자꾸 예외가 떳다.
상황은 DataGridView에 DataTable을 바인딩 시키고 클릭한 Row를 삭제하고 옆에 있는 DataGrid에 옮기는 것이다.
이 상태에서 홍길동을 클릭하면 오른쪽 으로 옮겨가는 것을 할 것이다.
이런식이다.
코드는 이러하다.
dataGridView.DataSource에 DataTable을 넣고 CellClick 이벤트가 발생하면 선택된 Row를 오른쪽에 추가하고
선택된 Row를 삭제하는 것이다.
우선 첫번째 발생했던 문제는 dataGridView2.Add(row)를 할 경우 발생한다.
위처럼 DataTable을 변경하는 것이 아니라 직접 dataGridView에서 수정하려고 할 경우 바인딩 되어 있어 안된다고 에러가 발생한다. 따라서.. 방법은 바인딩 된 DataTable을 수정하는 것이다.
두번째 발생했던 문제..
선택한 Row를 어떻게 DataRow로 변경할 것인가.!!!!
구글링을 쭉 해본결과 찾아냈다.
이런 식으로하면 해결 !! 어느 외국 커뮤니티에서 발견하였다.
DataGridViewRowCollection to DataRow 로 검색했던것같다.
세번재 발생한 문제 !!!!!
dt2.Rows.Add(row) 를 할때 발생한다.
"이 행은 이미 다른 테이블에 속해 있습니다" 라는 에러 인데.. 이것도 한참을 헤맨 결과 찾았다.
dt2.Rows.Add(row.ItemArray);
MSDN에 나오니 자세히 보면 될것 같다.
'ETC > C#' 카테고리의 다른 글
[C#] Chart Y축 타이틀.. (0) | 2016.09.19 |
---|---|
[C#] 현재 디렉토리(current directory) (0) | 2016.09.19 |
[C#] 폼(Form) 최소, 최대, 닫기 버튼 없애기 (0) | 2016.09.03 |
[C#]TextBox에 숫자만 입력받기 (5) | 2016.08.30 |
[C#]Threading.Timer 생성자.. CallBack (0) | 2016.08.29 |