12. DbProviderFactory 클래스
.NET프로그래밍/ADO.NET 2009. 9. 25. 11:59 |==> [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 클래스 - 데이터 소스 클래스의 공급자 구현에 대한 인스턴스를 만드는 데 사용되는 메서드의 집합을 나타냅니다.
=====================================================================================
[실행결과]
'.NET프로그래밍 > ADO.NET' 카테고리의 다른 글
14. 출력(CategoryList) (0) | 2009.09.28 |
---|---|
13. 입력(Insert문을 넣어서 카테고리 추가하기) (0) | 2009.09.28 |
11. 파라미터(Parameters) 사용 (0) | 2009.09.25 |
10. SqlCommand..::.ExecuteScalar 메서드 (0) | 2009.09.25 |
9. ConfigurationManager.ConnectionStrings 속성(한 곳에다 연결문자열 저장한 것을 불러오는 명령어) (0) | 2009.09.25 |