C#/winform

[C#][WinForm][Dev]DataTable로 GridControl/GridView에 데이터 추가하기

ㅋㅋ! 2021. 6. 28. 17:44

**본 글은 DevExpress 컴포넌트를 이용한 경우에만 참고 할 수 있다.

 

테스트에 사용된 데이터

 

GridControl/GridView란?

WinForm 의 DataGridView 상위버전.

오름차순/내림차순만 지원되는 DataGridView에서

검색기능 / 필터기능 등을 추가로 사용 할 수 있다.

WinForm의 DataGridView

 

DevExpress의 GridControl


GridControl / GridView 차이?

GridControl : 출력해줄 데이터 소스를 바인딩 한다.

GridView : 화면에 데이터를 출력해준다.

조금 더 자세하고 명확하게 정의 하고 싶지만 그 정도만큼 잘 알고 있지 못하다.

GridControl = 데이터  / GridView  = 화면출력 정도로만 생각해두고 써도 크게 무리는 없을 것 같다.

 


데이터 추가/바인딩 하기

기본적으로 DataGridView에 적용하는 방식과 동일하다.

데이터 테이블에 내용을 추가하고, 바인딩을 해보자.

 private void CreateDataTable(DataTable dt)
        {
            dt.Columns.Add("Category");
            dt.Columns.Add("Item");
            dt.Columns.Add("Price");
            dt.Columns.Add("Stock");
            dt.Columns.Add("Location");

            dt.Columns["Category"].Caption = "분류";
            dt.Columns["Item"].Caption = "품목";
            dt.Columns["Price"].Caption = "금액";
            dt.Columns["Stock"].Caption = "재고";
            dt.Columns["Location"].Caption = "위치";

            dt.Rows.Add("과일", "사과", "2000", "20", "A-2");
            dt.Rows.Add("과일", "바나나", "6000", "5", "A-5");
            dt.Rows.Add("과일", "딸기", "2500000", "500", "A-1");
            dt.Rows.Add("과일", "수박", "13000", "30", "A-3");
            dt.Rows.Add("과일", "메론", "5000", "15", "A-6");
            dt.Rows.Add("야채", "오이", "3000", "22", "B-1");
            dt.Rows.Add("야채", "버섯", "2500", "90", "B-3");
            dt.Rows.Add("야채", "토마토", "6000", "150", "B-5");
            dt.Rows.Add("야채", "감자", "3000", "300", "B-2");
            dt.Rows.Add("야채", "가지", "2000", "320", "B-9");
            dt.Rows.Add("야채", "대파", "1500", "15", "B-4");
            dt.Rows.Add("야채", "양파", "5000", "5", "B-8");
            dt.Rows.Add("육류", "삼겹살", "15000", "0", "C-1");
            dt.Rows.Add("육류", "목살", "18000", "800", "C-3");
            dt.Rows.Add("육류", "항정살", "19600", "13", "C-2");
        }

위의 DataTable을 아래 한줄로 바인딩한다.

 gridControl1.DataSource = dt;

데이터 바인딩이 완료되면 컬럼을 드래그 앤 드랍하여 목록을 필터링 하여 나열 하거나, 우측상단의 돋보기 버튼으로

검색을 할 수 있다.

필터링
검색기능

 

필드명(컬럼명) 변경하기

아래 두 가지 방법으로 필드명(컬럼명)을 변경 할 수 있다.

 

1. DataTable(DataSource)의 Caption 설정

dt.Columns["Category"].Caption = "분류";

2. GridView의 Caption 설정

gridView1.Columns["Category"].Caption = "분류";

 

 

※ 번외로 WinForm의 DataGridView는 아래 방법으로 필드명(컬럼명)을 변경한다.

   (DataTable의 Caption은 적용되지 않는다.)

 dataGridView1.Columns["Category"].HeaderText = "분류";

 

끝.