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]테이블을 출력한 화면



Posted by holland14
: