==> [FrmDbProviderFactory.aspx]  소스 및 디자인



<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmDbProviderFactory.aspx.cs" Inherits="FrmDbProviderFactory" %>

 

<!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>

 










=====================================================================================




==> [FrmDbProviderFactory.aspx.cs]



using System;

using System.Data;

using System.Data.SqlClient;

using System.Data.Common;

using System.Configuration;

 

public partial class FrmDbProviderFactory : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

        {

            DisplayDate();

        }

    }

 

    private void DisplayDate()

    {

        //[!] SQL Server, Oracle, Access DB에서 모두 똑같은 코드로 작성하고자 한다면???

        //[1] Configuration 정보 가져오기

        DbProviderFactory factory = DbProviderFactories.GetFactory(

            ConfigurationManager.ConnectionStrings["ConnectionString"].ProviderName);

 

 

        //[2] 커넥션 : SqlConnection, OleDbConnection 등을 DbConnection으로 통일

        DbConnection con = factory.CreateConnection();

        con.ConnectionString =

            ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

        con.Open();

 

 

        //[3] 커맨드 : SqlCommand, OracleCommand 등을 DbCommand로 공통처리

        DbCommand cmd = factory.CreateCommand();

        cmd.Connection = con;

        cmd.CommandText = "Select * From Categories Where CategoryID Between @First And @Second";

        cmd.CommandType = System.Data.CommandType.Text;

        //[!] 파라미터 추가

        DbParameter first = cmd.CreateParameter();

        first.ParameterName = "@First";

        first.DbType = System.Data.DbType.Int32;

        first.Value = 1;

 

        DbParameter second = cmd.CreateParameter();

        second.ParameterName = "@Second";

        second.DbType = System.Data.DbType.Int32;

        second.Value = 20;

 

        cmd.Parameters.Add(first);

        cmd.Parameters.Add(second);

 

 

        //[4] 데이터리더 : SqlDataReader, OleDbDataReader => DbDataReader

        DbDataReader dr = cmd.ExecuteReader();

 

 

        //[5] 바인딩

        this.ctlCategoryList.DataSource = dr;

        this.ctlCategoryList.DataBind();

 

 

        //[6] 마무리

        con.Close();

    }

}

 

 

 

 

// DbProviderFactory 클래스 - 데이터 소스 클래스의 공급자 구현에 대한 인스턴스를 만드는 데 사용되는 메서드의 집합을 나타냅니다.

 

 



=====================================================================================




[실행결과]













Posted by holland14
: