C#,Delphi,Oracle,MSSQL 개발자블로그
[C#] DataTable 사용법. 본문
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);
...
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);
...
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();
'Programming > C#' 카테고리의 다른 글
C# resx 리소스 문자열 개행처리. (0) | 2017.07.13 |
---|---|
C# String.Format()에 중괄호 사용하기. (0) | 2017.07.13 |
C# ComboBox에 DataTabe로 바인딩하기. (0) | 2017.07.13 |
[C#,ADO.NET] 'MSDAORA' 공급자는 로컬 컴퓨터에 등록할 수 없습니다(윈도우64비트,ORacle11g) (0) | 2017.07.13 |
C# 유저컨트롤간 상속받기/유저컨트롤끼리 상속받기. (0) | 2017.06.22 |
Comments