개발 공부/C# 학습

[C# 학습] DataGridView의 DataSource - DataTable? BindingList?

아밍나 2023. 7. 14. 13:59
728x90

DataTable과 BindingList는 DataGridView의 DataSource로 사용할 수 있는 데이터 소스 옵션입니다.


DataTable과 BindingList 사용 예시

// DataTable 사용 예시
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Name");
dataTable.Columns.Add("Age");
dataTable.Rows.Add("Lee", 21);
dataTable.Rows.Add("Kim", 25);

dataGridView1.DataSource = dataTable;

// BindingList 사용 예시
BindingList<Person> personList = new BindingList<Person>();
personList.Add(new Person { Name = "Lee", Age = 21 });
personList.Add(new Person { Name = "Kim", Age = 25 });

dataGridView2.DataSource = personList;

DataTable과 BindingList 비교

DataTable과 BindingList 중 어떤 옵션을 사용할지 결정하기 위해 차이를 가볍게 비교해 보았습니다.

 

1. 메모리 사용량

DataTable: 데이터를 테이블 형태로 메모리에 저장한다.

BindingList: 데이터를 컬렉션으로 저장한다. DataTable 보다 메모리 사용량이 더 적을 수 있음.

메모리 사용량을 줄이기 위해서는 BindingList 사용하는 것이 더 적합합니다.

2. 데이터 변경

DataTable: 데이터 변경, 행 추가/ 삭제 등을 지원하는 기능이 포함됨.
→ 데이터 소스의 구조와 관련된 작업이 필요한 경우 유용함.

BindingList: 데이터 변경, 구조 변경이 제한적.
 데이터 바인딩
과 데이터 소스 간 동기화에 사용됨.

→ 데이터 변경이 이루어져야 하는 경우 DataTable을 사용하는 것이 더 적합합니다.

3. 데이터 소스의 유형

DataTable: 테이블 간 관계 표현, 데이터베이스와의 상호 작용에 유용.

BindingList: 단순 목록 형태의 데이터에 유용.

 

정리하자면, 메모리 사용량을 줄이고 단순한 데이터 목록을 표출할 경우 BindingList를 사용하는 것이 좋고, 데이터 변경이나 구조적인 작업, 데이터 베이스와의 상호 작용이 필요한 경우 DataTable을 사용하는 것이 좋습니다.

 

728x90
반응형