asp.net DbProviderFactory的使用-示例
更新時(shí)間:2009年11月26日 01:34:54 作者:
NET 2.0有一個(gè)抽象工廠模式的典型應(yīng)用:通過(guò)DBProviderFactory 可以對(duì)不同數(shù)據(jù)庫(kù)進(jìn)行操作。
復(fù)制代碼 代碼如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Data.Common;
/// <summary>
/// OrderInfoConfiguration 的摘要說(shuō)明
/// </summary>
public class OrderInfoConfiguration
{
private const string connectionString=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\TutorialSampleCodeProjects\xtreme.mdb";
private const string queryString="SELECT a.[Order Date] AS 訂單時(shí)間,a.[Order ID] AS 訂單號(hào),b.[Last Name]+\" \"+b.[First Name] AS 員工姓名,c.[Customer Name] AS 客戶姓名,d.[Product Name] AS 產(chǎn)品名 FROM Orders a,Employee b,Customer c,Product d ,[Orders Detail] e WHERE a.[Employee ID]=b.[Employee ID] AND a.[Customer ID]=c.[Customer ID] AND a.[Order ID]=e.[Order ID] AND e.[Product ID]=d.[Product ID]";
public static DataSet OrderInfoDataSet
{
get
{
DataSet dataSet = new DataSet();
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb"); //獲取工廠
DbConnection con = factory.CreateConnection();//創(chuàng)建連接
con.ConnectionString = connectionString;
DbCommand cmd = factory.CreateCommand();//創(chuàng)建命令
cmd.CommandText = queryString;
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
DbDataAdapter dapter = factory.CreateDataAdapter();//創(chuàng)建適配器
dapter.SelectCommand = cmd;
dapter.Fill(dataSet);//填充
return dataSet;
}
}
public OrderInfoConfiguration()
{
//
// TODO: 在此處添加構(gòu)造函數(shù)邏輯
//
}
}
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb"); //獲取工廠 這句就可以獲得一個(gè)工廠,用這個(gè)工廠就可發(fā)生產(chǎn)該數(shù)據(jù)提供程序的各種對(duì)象了。
如果是連接
SqlServer:DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.SqlClient");
Oracle:DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OracleClient");
ODBC:DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.Odbc");
使用了這個(gè),要是想換個(gè)數(shù)據(jù)庫(kù),是不是很方便了呢?呵呵。
相關(guān)文章
xUnit 編寫 ASP.NET Core 單元測(cè)試的方法
這篇文章主要介紹了xUnit 編寫 ASP.NET Core 單元測(cè)試的方法,文中代碼非常詳細(xì),幫助大家更好的參考和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06c#中兩種不同的存儲(chǔ)過(guò)程調(diào)用與比較
存儲(chǔ)過(guò)程的調(diào)用在B/S系統(tǒng)中用的很多。傳統(tǒng)的調(diào)用方法不僅速度慢,而且代碼會(huì)隨著存儲(chǔ)過(guò)程的增多不斷膨脹,難以維護(hù)。新的方法在一定程度上解決了這些問(wèn)題2012-12-12使用Aspose.Cells組件生成Excel文件實(shí)例
這篇文章主要介紹了使用Aspose.Cells組件生成Excel文件的方法,大家參考使用吧2013-11-11在WinForm和WPF中使用GMap.Net地圖插件簡(jiǎn)單教程
GMap.NET是一個(gè)強(qiáng)大、免費(fèi)、跨平臺(tái)、開(kāi)源的.NET控件,它在Windows Forms 和WPF環(huán)境中能夠使用來(lái)自Google, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac等地圖,下面看一下使用方法2013-12-12asp.net 動(dòng)態(tài)生成控件并獲取其值
代碼比較簡(jiǎn)單,所以不多做解釋了:2009-02-02asp.net中eval不能定義變量的問(wèn)題的解決方法
eval不能定義變量的問(wèn)題該怎么辦,下面有個(gè)不錯(cuò)的解決方法,大家可以參考下2013-12-12ASP.NET Core應(yīng)用錯(cuò)誤處理之三種呈現(xiàn)錯(cuò)誤頁(yè)面的方式
這篇文章主要給大家介紹了關(guān)于ASP.NET Core應(yīng)用錯(cuò)誤處理之三種呈現(xiàn)錯(cuò)誤頁(yè)面的方式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01關(guān)于ASP.NET頁(yè)面打印技術(shù)的常用方法總結(jié)
B/S結(jié)構(gòu)導(dǎo)致了Web應(yīng)用程序中打印的特殊性;程序運(yùn)行在瀏覽器中,打印機(jī)在本地,而文件確可能在服務(wù)器上,導(dǎo)致了打印控制不是很靈活,接下來(lái)介紹幾種常見(jiàn)的打印技術(shù),感興趣的朋友可以了解下2013-01-01