티스토리 뷰
- DataSet 다루기 DataSet은 ADO.NET의 구조 중 중요한 부분으로 데이터베이스로부터 가져온 데이터를 캐쉬 메모리에 저장하여 사용한다. 즉, 메모리에 있는 데이터베이스라고 할 수 있겠다. DataSet은 데이터베이스에 있는 내용 및 구조를 그대로 옮겨오는 것이기 때문에 데이터베이스에 대한 연결은 일반 연결과정과 같다. 이 연결을 통해서 데이터베이스의 내용을 가상 데이터베이스인 DataSet에 넣는다. 데이터베이스와 DataSet의 상호작용은 SqlDataAdapter나 OleDbDataAdapter 등을 통해 제어된다. DataSet의 속성
데이터셋의 메소드
<?xml:namespace prefix = o /> - DataSet 만들기 DataSet을 만드는 방법은 생성자를 호출하여 만들거나 기존 DataSet을 기반으로 하여 일부 스키마를 복사하여 만들 수 있다. DataSet을 만들 때 DataSet의 이름을 지정하지 않을 경우 자동으로 “NewDataSet”이라는 이름으로 지정된다. 다음은 DataSet을 만드는 예이다. DataSet ds = new DataSet(“데이터셋이름”);
- DataSet의 DataTable DataSet은 테이블의 집합이라고 할 수 있다. 테이블 간의 관계 등 다른 정보들도 물론 포함되어 있지만 가장 근본이 되는 것은 그 속에 포함되어 있는 테이블들이라고 말할 수 있다. DataSet에 포함되어 있는 테이블들은 DataSet의 속성인 Tables를 통해 얻을 수 있는데 Tables 속성은 DataTable 개체의 집합인 DataTableCollection으로 이루어져 있다.
DataSet에 DataTable을 추가하기 위해서는 DataTableCollection의 Add 메소드를 이용하여 작업할 수 있다. 또한 DataSet에서 DataTable를 삭제하고자 한다면, Remove 메소드를 이용하면 된다. DataSet에 테이블 추가 DataSet.Tables.Add(DataTable);
DataSet에서 테이블 삭제 DataSet.Tables.Remove(DataTable);
DataTable의 속성
DataTable의 메소드
- DataTable에 열 추가하기 DataTable을 처음 만들 때에는 스키마가 존재하지 않는다. DataTable에 대한 스키마는 DataColumn을 먼저 생성한 후 DataTable의 Columns 속성의 Add 메소드를? 이용하여 DataColumn을 추가한다. DataColumn의 속성
DataTable dt = new DataTable(“TestTable”); DataColumn dc1 = new DataColumn(“field1”, typeof(int)); DataColumn dc2 = new DataColumn(“field2”, typeof(string));
dt.Columns.Add(dc1); dt.Columns.Add(dc2);
- DataTable에 행 추가하기 DataTable에 데이터를 넣기 위해 사용되는 것이 DataRow이다. DataRow는 DataTable의 Rows 속성으로 얻을 수 있는 DataRowCollection에 추가함으로써 테이블에 추가할 수 있다.
DataRow의 속성
DataRow의 메소드
DataRow dr = dt.NewRow(); dr[“field”] = 1; dr[“field”] = “홍길동” dt.Rows.Add(dr);
- DataTable의 행과 열 출력 DataTable에 포함되어 있는 행(DataColumn)에 대한 정보를 알기 위해서 우선 DataTable의 DataColumns 속성을 이용하여 모든 행들을 가져온다. DataTable에 DataColumn들은 DataColumnCollection 형태로 포함되어 있기 때문에 각각의 DataColumn 값을 인덱스를 이용하여 정보를 가져올 수 있다. DataTable dt; foreach(DataColumn dc in dt.Columns) { Response.Write(dc.ColumnName + “:” + dc.DataType.ToString()); }
foreach를 이용하지 않고 for 구문을 이용해서 출력을 할 경우에는 DataColumnCollection의 Count를 이용하여 총 개수를 구한 다음 루프 안의 인덱스를 통해 각각의 DataColumn에 엑세스할 수 있다. 다음은 for 구문을 이용한 DataRow들을 출력하는 예이다. for(int i=0;i<dt.Rows.Count;i++) { Response.Write(dt.Rows[i][“field”].ToString() + “:” + dt.Rows[i][“field2”].ToString()); } }
- 데이터베이스와 DataSet DataSet은 데이터베이스에 있는 내용 및 구조를 그대로 옮겨오는 것이기 때문에 데이터베이스에 대한 연결은 일반 연결 과정과 같다. 이 연결을 통해서 데이터베이스의 내용을 가상 데이터베이스인 DataSet에 넣게 된다. 데이터베이스와 DataSet의 상호 작용은 SqlDataAdapter나 OleDbDataAdapter 등을 통해 제어되는데, 먼저 SqlDataAdapter에 대한 속성과 메소드이다. SqlDataAdapter의 속성
SqlDataAdapter의 메소드
- DataSet 채우기 DataSet에 데이터베이스의 내용을 채우기 위해서는 가장 쉬운 방법은 SqlDataAdapter를 이용하는 것인데, SqlDataAdapter를 이용해 채우기 위해서는 채우려고 하는 Select 쿼리문과 연결하기 위한 SqlConnection이 필요하다. SqlConnection을 통해 연결한 후 Fill 메소드를 호출함으로써 DataSet에 데이터베이스의 내용을 채울 수 있다. public DataSet FillDataSet() { string sql = “select * from 테이블이름”; SqlDataAdapter adapter = new SqlDataAdapter(sql, CreateConnection()); DataSet ds = new DataSet(); adapter.Fill(ds, “테이블이름”); return ds }
- DataSet의 데이터 엑세스하기 데이터셋에 있는 가상 테이블을 액세스하는 방법은 다음과 같다. DataSet.Tables[index] 또는 DataSet.Tables[tablename] 데이터셋 클래스에는 Tables라는 속성이 있는데 이것은 데이터셋에 있는 테이블들의 컬렉션을 리턴해 준다. 이러한 테이블의 속성을 이용하여 접근하고자 하는 테이블에 액세스할 수 있다.
테이블에 대한 접근이 이루어졌으니 테이블 속에 들어 있는 열과 행들에 대한 엑세스는 단일 테이블에 엑세스하는 방법과 같다. foreach(DataRow dRow in ds.Tables[“데이터셋의 테이블이름”].Rows) { Response.Write(dRow[“필드이름”].ToString()); } 출처 : http://www.webmadang.net/develop/develop.do?action=read&boardid=1002&page=1&seq=21 |
'프로그래밍 > ASP.NET' 카테고리의 다른 글
Ajax - Web Services 호출 (0) | 2012.10.08 |
---|---|
ASP.NET PageMethods와 JSON을 통한 다이나믹 페이지 개발 (0) | 2012.10.05 |
Ajax 관련 URL (0) | 2012.09.13 |
ASP.NET 웹 응용 프로그램을 실행할 때 "System.Data.OleDb.OleDbException" 오류 (0) | 2012.06.20 |
[HOONS] 그리드에서 셀병합하기 (RowSpan,ColSpan) (0) | 2012.05.26 |
- Total
- Today
- Yesterday
- 저장프로시저
- 셀렉터
- workbook
- CSS
- css3
- Chart
- 자바스크립트
- jQuery Mobile
- Excel
- json
- drag&drop
- IE
- JS
- ASP.NET
- WCF
- JavaScript
- grid
- 제이쿼리
- Mobile
- Ajax
- MSSQL
- jquery chart
- rowspan
- html5
- SVG
- Style
- 프로시저
- WebApi
- jQuery
- radius
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |