본문 바로가기
IT 개발일지

C# 데이터그리드뷰 행 삭제 How to Delete Rows in a DataGridView with a Boundin Data Source in WinForms: A Step-by-Step Guide with Code Snippets

by (주)삼우기공 2023. 5. 15.
반응형
int rowIndex = dataGridView1.CurrentCell.RowIndex;

dataGridView1.Rows.RemoveAt(rowIndex);

 

위의 코드에서 dataGridView1은 DataGridView 컨트롤의 이름입니다. rowIndex는 삭제할 행의 인덱스 번호입니다. 

 

예를 들어, DataGridView에서 첫 번째 행을 삭제하려면 다음과 같이 코드를 작성할 수 있습니다.

 

dataGridView1.Rows.RemoveAt(0);

 

WinForms에서 DataGridView에서 행을 삭제하는 방법은 RemoveAt 메서드를 사용하는 것입니다.

하지만, 바인딩된 데이터 소스를 사용하는 DataGridView에서는 해당 방법이 작동하지 않습니다.

바인딩된 데이터 소스를 사용하는 DataGridView에서 행을 삭제하기 위해서는,

먼저 데이터 소스에서 해당 행을 삭제하고 DataGridView에 데이터를 다시 바인딩해야 합니다.

예를 들어, DataTable을 데이터 소스로 사용하는 경우 다음과 같은 코드를 사용하여

DataGridView에서 선택한 행을 삭제할 수 있습니다.



바인딩된 데이터 소스를 사용하는 DataGridView에서 행을 삭제하기 위해서는,

먼저 데이터 소스에서 해당 행을 삭제하고 DataGridView에 데이터를 다시 바인딩해야 합니다.

예를 들어, DataTable을 데이터 소스로 사용하는 경우 다음과 같은 코드를 사용하여

DataGridView에서 선택한 행을 삭제할 수 있습니다.

 

// 현재 선택된 행을 가져오기
DataGridViewRow selectedRow = dataGridView1.CurrentRow;

// 데이터 소스에서 해당 행 삭제
((DataTable)dataGridView1.DataSource).Rows[selectedRow.Index].Delete();

// 삭제한 데이터 소스 새로운데이터 테이블 저장
DataTable dt = ((DataTable)dataGridView1.DataSource);

// 바인딩 데이터 삭제
dataGridView1.DataSource = null;

// DataGridView에 다시 데이터 소스 바인딩
dataGridView1.DataSource = dt;

위의 코드에서 CurrentRow 프로퍼티를 사용하여 현재 선택한 행을 가져옵니다.

그런 다음, 데이터 소스에서 해당 행을 삭제하고 DataSource 프로퍼티를 사용하여 DataGridView에 데이터를 다시 바인딩합니다.

DataTable 이외의 데이터 소스가 사용된 경우, 데이터 소스에서 행을 삭제하는 방법이 다를 수 있습니다.

예를 들어, List<T>를 데이터 소스로 사용하는 경우 RemoveAt 메서드를 사용하여 해당 인덱스의 항목을 삭제할 수 있습니다. 그런 다음, DataGridView를 업데이트하기 위해 데이터 소스를 다시 바인딩해야 합니다.


이제, 바인딩된 데이터 소스를 사용하는 DataGridView에서 행을 삭제하는 방법에 대해 알게 되었습니다.

코드를 적절하게 수정하여 사용하면 됩니다.

반응형

댓글