asp.net DbProviderFactory的使用-示例

时间:2021-05-28

复制代码 代码如下:
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 的摘要说明
/// </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 订单时间,a.[Order ID] AS 订单号,b.[Last Name]+\" \"+b.[First Name] AS 员工姓名,c.[Customer Name] AS 客户姓名,d.[Product Name] AS 产品名 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();//创建连接
con.ConnectionString = connectionString;
DbCommand cmd = factory.CreateCommand();//创建命令
cmd.CommandText = queryString;
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
DbDataAdapter dapter = factory.CreateDataAdapter();//创建适配器
dapter.SelectCommand = cmd;
dapter.Fill(dataSet);//填充

return dataSet;
}
}

public OrderInfoConfiguration()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
}

DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb"); //获取工厂 这句就可以获得一个工厂,用这个工厂就可发生产该数据提供程序的各种对象了。

如果是连接

SqlServer:DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.SqlClient");
Oracle:DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OracleClient");
ODBC:DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.Odbc");

使用了这个,要是想换个数据库,是不是很方便了呢?呵呵。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章