본문 바로가기
C#/윈폼

윈폼 datatable, dataset, datagridview

by hoshi03 2024. 9. 21.

• datatable 사용

datagridview 안에 데이터테이블을 넣어서 표현해보자

form에 datagridview를 만들어서 넣어두고 

폼이 초기화될때 데이터테이블이 들어가게 하는 방식

private void Form1_Load(object sender, EventArgs e)
{
    DataTable dt = new DataTable();
    DataColumn dc = new DataColumn();
    dc.ColumnName = "int";
    dc.DataType = typeof(Int32);

    DataColumn dc2 = new DataColumn();
    dc2.ColumnName = "name";
    dc2.DataType = typeof(string);

    dt.Columns.Add(dc);
    dt.Columns.Add(dc2);


    dt.Rows.Add(1, "ho");
    dt.Rows.Add(2, "hoshi");
    dt.Rows.Add(3, "data");

    //데이터그리드뷰에 데이터 소스를 위에서 작성한 데이터컬럼으로 연결
    dataGridView1.DataSource = dt;
   }

 

먼저 데이터테이블 객체를 만들고 컬럼 두개에 속성을 넣을거니 datacolumn 2개를 만들고 

컬럼에 들어갈 데이터의 타입을 typeof를 이용해서 명시해둔다

 

각 행에 들어갈 데이터는 데이터테이블의 dt.Rows.Add 하고 열 갯수와 데이터 타입에 맞춰서 넣어준다

마지막으로 데이터그리드뷰에 데이터소스를 위에서 만들어둔 데이터테이블로 지정하면 잘 들어간다

조만간 한땀한땀 넣는게 아닌 db와 연동해서 데이터를 저장할 수 있게 수정해볼 예정

 

• dataset

데이터테이블을 데이터셋에 넣고 뽑아와서 사용할 수 있다

 

위의 코드로 만들어둔 데이터테이블을 데이터셋에 추가하고 데이터그리드뷰의 소스를 

데이터셋의 원소로 지정하는 방식으로 사용 가능하다

 

            //데이터셋에 데이터테이블 추가
            DataSet ds = new DataSet("myDataSet");
            ds.Tables.Add(dt);
            ds.Tables.Add(dt2);

            // 원하는 테이블을 인덱스로 지정해서 가져오기 가능
            dataGridView1.DataSource = ds.Tables[0];

 

 

 

내가 이해한 데이터를 저장하는 순서

 

1. 데이터테이블을 생성

2. 해당 데이터테이블에 들어갈 datacolumn 객체를 생성하고 이름과 타입을 정한 후 데이터테이블에 삽입

3. 데이터테이블의 행에 들어갈 원소들을 위에 만들어둔 컬럼의 타입에 맞춰 삽입

4. 데이터셋에 위의 1~3으로 만들어진 데이터테이블을 넣고

5. 데이터그리드뷰의 데이터소스로 dataset의 원소인 테이블을 인덱스 번호로 넣어 화면에 출력