C#,Delphi,Oracle,MSSQL 개발자블로그

[C#] DataTable 사용법. 본문

Programming/C#

[C#] DataTable 사용법.

19760323 2017. 7. 13. 12:26

java에서 for문으로 찍어왔는데, .NET프로젝트를 하면서는
Repeater 라는 놈에 DataTable데이터를 바인딩해서 출력을 주로 하게 되었다.

근데, 막상 결과를 datatable에 담는 간단한 샘플코드 찾기가 이상하게 힘들었고, 결국은 내가 정리해서 포스팅을 하게 되었다 ;;; 

예제1) 테이블

 NAME  AGE
 홍길동  10
 둘리  20

이런 테이블 형태의 데이터를 담고 싶다면??
loop를 돌면서 데이터를 생성해서 담는 구조면 처음것,,,
api같은것에서 배열을 통째로 던져주는 구조라면 두번재 방법으로 사용하면됨...


[첫번째 방법]  값을 일일이 넣어주기 ! (필드단위로 값을 넣어주기)

        선언문 : using System.Data;

        DataTable table = new DataTable();
        DataRow row = null;
    
        //[1] 필드정의
        table.Columns.Add(new DataColumn("NAME", typeof(string)));
        table.Columns.Add(new DataColumn("AGE", typeof(int)));

        //[2] 행추가하기, 데이터 넣기
        //----LOOP로직[시작]----

        row = table.NewRow();  //행추가
        row["NAME"] = "홍길동";
        row["AGE"] = 10;
        table.Rows.Add(row);
        //----LOOP로직[끝]----


        row = table.NewRow();
        row["NAME"] = "둘리";
        row["AGE"] = 20;
        table.Rows.Add(row);
        ...




[두번째방법] 값을 object 배열로 밀어 넣어 버리기 ! (행을 통째로 대입)

        선언문 : using System.Data;

        DataTable table = new DataTable();
        DataRow row = null;
    
        //[1] 필드정의
        table.Columns.Add(new DataColumn("NAME", typeof(string)));
        table.Columns.Add(new DataColumn("AGE", typeof(int)));

        //[2] 행추가하기 , 데이터 넣기
        //----LOOP로직[시작]----

        row = table.NewRow();
        row.ItemArray = new object[]{"홍길동", 10 };
        table.Rows.Add(row);
        //----LOOP로직[끝]----

        row = table.NewRow();
        row.ItemArray = new object[]{"둘리", 20 };
        table.Rows.Add(row);
        ...





이런식으로 선언하고 rpt_view라는 리피터를 선언했다면,

rpt_view.DataSource = table;
rpt_view.DataBind();

형태로 출력하면 됨.

출처: http://tost.tistory.com/79 [정선생의 블로그]

 

DataTable Sort

 

DataView dv = new DataView(dt);

dv.Sort = "Column Name" //DESC

dt = dv.toTable();

 

출처 : http://angeljuni.tistory.com/entry/DataTable-Sort

Comments