18. DataSet 클래스
.NET프로그래밍/ADO.NET 2009. 9. 28. 14:07 |DataSet : 메모리상의 데이터베이스, 즉, DB에 있는 한두개의 테이블을 읽어서 DataSet개체에 보관해 놓으면, 마치 물리적인 DB를 메모리에 두고, 이를 사용해서 손쉽게 DB 입출력 기능을 구현할 수 있는 막강한 클래스
-------------------------------------------------------------------------------------
==> [FrmDataSet.aspx] 소스 및 디자인
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmDataSet.aspx.cs" Inherits="FrmDataSet" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="ctlCategoryList" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>
-------------------------------------------------------------------------------------
==> [FrmDataSet.aspx.cs]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
public partial class FrmDataSet : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack) // 처음 로드시에만 데이터 읽어서 바인딩
{
DisplayData();
}
}
private void DisplayData()
{
using (SqlConnection con = new SqlConnection(
ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
con.Open();
SqlCommand cmd = new SqlCommand("Select * From Categories", con);
//[1] SqlDataAdapter 클래스의 인스턴스 생성
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
//[2] DataSet 클래스의 인스턴스
DataSet ds = new DataSet();
//[3] da.Fill() 메서드로 데이터셋 채우기
da.Fill(ds, "Categories");
//[4] GridView에 바인딩
ctlCategoryList.DataSource = ds;
ctlCategoryList.DataBind();
}
}
}
// DataSet 클래스 - 메모리 내의 데이터 캐시를 나타냅니다.
// DataSet 클래스 : 메모리상의 데이터베이스(엄청나게 큰 규모의 클래스, 가장 막강한 클래스 중의 하나이다. 1개 이상의 테이블이 올 수 있다.)
// SqlDataAdapter 클래스 - DataSet를 채우고 SQL Server 데이터베이스를 업데이트하는 데 사용할 데이터 명령 집합과 데이터베이스 연결을 나타냅니다. 이 클래스는 상속될 수 없습니다.
// "SqlDataAdapter 클래스"를 사용하면 SqlConnection을 Open, Close 하지 않아도 된다.(SqlDataAdapter 클래스가 con.Open()메서드와 con.Close()메서드의 기능을 포함하고 있다.)
// 페이징 처리는 DataSet으로 처리해야 한다. DataReader로는 페이징 처리가 안된다.
// DataSet은 엄청 무거운 그릇이다.
// DataSet은 1개 이상의 테이블을 담아놓을수 있다.
-------------------------------------------------------------------------------------
[실행결과]
--> "DataSet 클래스"와 "GridView"를 사용하여 [SQL Server] - [Market]데이터베이스 - [dbo.Categories]테이블을 출력한 화면
'.NET프로그래밍 > ADO.NET' 카테고리의 다른 글
20. DataView 클래스 (0) | 2009.09.28 |
---|---|
19. DataTable 클래스 (0) | 2009.09.28 |
17. SqlTransaction 클래스 / TransactionScope 클래스 (0) | 2009.09.28 |
16. 수정(Modify) / 삭제(Delete) (0) | 2009.09.28 |
[참고] 비동기실행(BeginExecuteNonQuery) - 다중 처리 (0) | 2009.09.28 |