惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
博客园 - 司徒正美
美团技术团队
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Troy Hunt's Blog
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
Cisco Talos Blog
Cisco Talos Blog
T
Tor Project blog
B
Blog
NISL@THU
NISL@THU
月光博客
月光博客
博客园 - 【当耐特】
AWS News Blog
AWS News Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
腾讯CDC
L
Lohrmann on Cybersecurity
The Cloudflare Blog
L
LINUX DO - 最新话题
S
Security @ Cisco Blogs
S
Secure Thoughts
Spread Privacy
Spread Privacy
有赞技术团队
有赞技术团队
The Last Watchdog
The Last Watchdog
Project Zero
Project Zero
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Vercel News
Vercel News
H
Hacker News: Front Page
S
SegmentFault 最新的问题
Schneier on Security
Schneier on Security
aimingoo的专栏
aimingoo的专栏
P
Privacy & Cybersecurity Law Blog
博客园 - 三生石上(FineUI控件)
Forbes - Security
Forbes - Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
InfoQ
T
Tailwind CSS Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
GRAHAM CLULEY
W
WeLiveSecurity
小众软件
小众软件
Recorded Future
Recorded Future
Cyberwarzone
Cyberwarzone
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

博客园 - Forrest.Gao

BizTalk学习笔记系列之五: BizTalk Server 2006 安装手记 BizTalk学习笔记系列之四: BizTalk功能介绍 BizTalk学习笔记系列之三:企业集成应用和BizTalk BizTalk学习笔记系列之二:实例说明如何使用BizTalk BizTalk学习笔记系列之一:BizTalk概述 推荐一款不错的ASP.NET代码生成器:ASP.NET Maker JavaScropt,Html常用代码。(zz) - Forrest.Gao - 博客园 常见C#面试题目(ZZ) ASP.NET程序中常用代码汇总 - Forrest.Gao - 博客园 DataGrid技巧大集合(转载) vs.net常用快捷键 (ZT)看《越狱》体会项目管理! 在 ASP.NET 中使用绝对过期实现 Page Cache 常用动态web页面技术简介 在 ASP.NET 中实现 Model-View-Controller Microsoft .NET 的企业解决方案模式 > Web 表示模式 > 模型-视图-控制器(学习笔记四) Microsoft .NET 的企业解决方案模式 > Web 表示模式(学习笔记三) Microsoft .NET 的企业解决方案模式 > 组织模式(学习笔记二) Microsoft .NET 的企业解决方案模式(学习笔记一)企业解决方案的构建模式
有感于Kim的数据库类,偶也来共享一个数据库工厂。
Forrest.Gao · 2006-07-09 · via 博客园 - Forrest.Gao

以前作项目时用过的,感觉对数据库操作挺方便,希望能对大家有用^_^

怎么用代码的方式发布不了呢?已经试了八次了。。。还是不行,难道是偶的人品不好?^_^

看来大家只能看文本格式的代码了,真不好意思。

using System;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;

namespace NCMS.DataAccess
{
 /// <summary>
 /// DBAccess 的摘要说明。
 /// </summary>

 public class DBAccess:IDBAccess
 {

  #region DBAccess的成员变量
  private DBType _DBType=new DBType();
  private string _conString;
  private DBFactory _DBFactory=DBFactory.getDBFactory();
  #endregion

  public DBAccess()
  {
   //从web.config文件中读取数据库类型字符串
            string dbtype=ConfigurationSettings.AppSettings["DatabaseType"];
   if (dbtype=="SqlServer")
   {
    _DBType=DBType.SqlServer;
    SetConnectionString();
   }
  }
       
  /// <summary>
  /// 无条件查询记录
  /// </summary>
  /// <param name="tablename">查询的表名</param>
  /// <param name="columns">查询的属性</param>
  /// <returns></returns>
  public DataSet Select(string tablename,string columns) {
   DataSet ds=new DataSet();
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionString();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
            try{
    //创建Command对象
    string selectstring="SELECT "+columns+" FROM "+tablename;
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=selectstring;
    cmd.Connection=conn;
    //创建Adapter对象
    IDbDataAdapter ad=dbfactory.createDataAdapter();
    ad.SelectCommand=cmd;
    //执行查询
    conn.Open();
    ad.Fill(ds);
            }catch(Exception err){
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
            }finally{
    if(conn!=null) conn.Close();
            }
   return ds;
  }
       

  /// <summary>
  /// 无条件查询记录
  /// </summary>
  /// <param name="tablename">查询的表名</param>
  /// <param name="columns">查询的属性</param>
  /// <returns></returns>
  public DataSet SelectMain(string tablename,string columns)
  {
   DataSet ds=new DataSet();
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionStringMain();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
   try
   {
    //创建Command对象
    string selectstring="SELECT "+columns+" FROM "+tablename;
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=selectstring;
    cmd.Connection=conn;
    //创建Adapter对象
    IDbDataAdapter ad=dbfactory.createDataAdapter();
    ad.SelectCommand=cmd;
    //执行查询
    conn.Open();
    ad.Fill(ds);
   }
   catch(Exception err)
   {
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
   }
   finally
   {
    if(conn!=null) conn.Close();
   }
   return ds;
  }


  /// <summary>
  /// 条件查询
  /// </summary>
  /// <param name="tablename">查询的表名</param>
  /// <param name="columns">查询的属性</param>
  /// <param name="conditions">约束条件</param>
  /// <returns></returns>
  public DataSet Select(string tablename,string columns,string conditions)
  {
   DataSet ds=new DataSet();
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionString();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
   try
   {
    //创建Command对象
    string selectstring="SELECT "+columns+" FROM "+tablename +" Where "+conditions;
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=selectstring;
    cmd.Connection=conn;
    //创建Adapter对象
    IDbDataAdapter ad=dbfactory.createDataAdapter();
    ad.SelectCommand=cmd;
    //执行查询
    conn.Open();
    ad.Fill(ds);
   }
   catch(Exception err)
   {
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
   }
   finally
   {
    if(conn!=null) conn.Close();
   }
   return ds;
  }
       

  /// <summary>
  /// 条件查询
  /// </summary>
  /// <param name="tablename">查询的表名</param>
  /// <param name="columns">查询的属性</param>
  /// <param name="conditions">约束条件</param>
  /// <returns></returns>
  public DataSet SelectMain(string tablename,string columns,string conditions)
  {
   DataSet ds=new DataSet();
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionStringMain();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
   try
   {
    //创建Command对象
    string selectstring="SELECT "+columns+" FROM "+tablename +" Where "+conditions;
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=selectstring;
    cmd.Connection=conn;
    //创建Adapter对象
    IDbDataAdapter ad=dbfactory.createDataAdapter();
    ad.SelectCommand=cmd;
    //执行查询
    conn.Open();
    ad.Fill(ds);
   }
   catch(Exception err)
   {
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
   }
   finally
   {
    if(conn!=null) conn.Close();
   }
   return ds;
  }

  /// <summary>
  /// 插入一条完整的记录
  /// </summary>
  /// <param name="tablename">插入记录所在表的表名</param>
  /// <param name="values">所有属性值</param>
  public void Insert(string tablename,string values){
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionString();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
   try
   {
    //创建Command对象
    string insertstring="INSERT INTO "+tablename +" VALUES ("+values+")";
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=insertstring;
    cmd.Connection=conn;
    //执行插入
    conn.Open();
    cmd.ExecuteNonQuery();
   }
   catch(Exception err)
   {
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
   }
   finally
   {
    if(conn!=null) conn.Close();
   }
  }

  /// <summary>
  /// 插入一条完整的记录
  /// </summary>
  /// <param name="tablename">插入记录所在表的表名</param>
  /// <param name="values">所有属性值</param>
  public void InsertMain(string tablename,string values)
  {
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionStringMain();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
   try
   {
    //创建Command对象
    string insertstring="INSERT INTO "+tablename +" VALUES ("+values+")";
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=insertstring;
    cmd.Connection=conn;
    //执行插入
    conn.Open();
    cmd.ExecuteNonQuery();
   }
   catch(Exception err)
   {
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
   }
   finally
   {
    if(conn!=null) conn.Close();
   }
  }


        /// <summary>
        /// 插入一条记录
        /// </summary>
        /// <param name="tablename">要插入记录所在表的表名</param>
        /// <param name="columns">属性集</param>
        /// <param name="values">属性值</param>
  public void Insert(string tablename,string columns,string values){
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionString();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
   try
   {
    //创建Command对象
    string insertstring="INSERT INTO "+tablename +" ("+columns+") VALUES ("+values+")";
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=insertstring;
    cmd.Connection=conn;
    //执行插入
    conn.Open();
    cmd.ExecuteNonQuery();
   }
   catch(Exception err)
   {
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
   }
   finally
   {
    if(conn!=null) conn.Close();
   }
  }


  
  /// <summary>
  /// 插入一条记录
  /// </summary>
  /// <param name="tablename">要插入记录所在表的表名</param>
  /// <param name="columns">属性集</param>
  /// <param name="values">属性值</param>
  public void InsertMain(string tablename,string columns,string values)
  {
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionStringMain();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
   try
   {
    //创建Command对象
    string insertstring="INSERT INTO "+tablename +" ("+columns+") VALUES ("+values+")";
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=insertstring;
    cmd.Connection=conn;
    //执行插入
    conn.Open();
    cmd.ExecuteNonQuery();
   }
   catch(Exception err)
   {
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
   }
   finally
   {
    if(conn!=null) conn.Close();
   }
  }

  /// <summary>
  /// 更新本车间数据库记录
  /// </summary>
  /// <param name="tablename">要更新记录所在表的表名</param>
  /// <param name="values">属性值集</param>
  /// <param name="conditions">约束条件</param>
  public void Update(string tablename,string values,string conditions)
  {
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionString();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
   try
   {
    //创建Command对象
    string updatestring="UPDATE "+tablename+" SET "+values+" WHERE "+conditions;
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=updatestring;
    cmd.Connection=conn;
    //执行更新
    conn.Open();
    cmd.ExecuteNonQuery();
   }
   catch(Exception err)
   {
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
   }
   finally
   {
    if(conn!=null) conn.Close();
   }
  }

  /// <summary>
  /// 更新主服务器数据库记录
  /// </summary>
  /// <param name="tablename">要更新记录所在表的表名</param>
  /// <param name="values">属性值集</param>
  /// <param name="conditions">约束条件</param>
  public void UpdateMain(string tablename,string values,string conditions)
  {
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionStringMain();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
   try
   {
    //创建Command对象
    string updatestring="UPDATE "+tablename+" SET "+values+" WHERE "+conditions;
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=updatestring;
    cmd.Connection=conn;
    //执行更新
    conn.Open();
    cmd.ExecuteNonQuery();
   }
   catch(Exception err)
   {
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
   }
   finally
   {
    if(conn!=null) conn.Close();
   }
  }

  /// <summary>
  /// 条件删除
  /// </summary>
  /// <param name="tablename">要删除记录所在表的表名</param>
  /// <param name="conditions">约束条件</param>
  public void Delete(string tablename,string conditions){
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionString();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
   try
   {
    //创建Command对象
    string deletestring="DELETE FROM "+tablename+" WHERE "+conditions;
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=deletestring;
    cmd.Connection=conn;
    //执行删除
    conn.Open();
    cmd.ExecuteNonQuery();
   }
   catch(Exception err)
   {
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
   }
   finally
   {
    if(conn!=null) conn.Close();
   }
  }

  /// <summary>
  /// 条件删除
  /// </summary>
  /// <param name="tablename">要删除记录所在表的表名</param>
  /// <param name="conditions">约束条件</param>
  public void DeleteMain(string tablename,string conditions)
  {
   //创建数据库工厂
   IAbstractDBFactory dbfactory=_DBFactory.CreateDBFactory(_DBType);
   //创建数据库连接对象
   SetConnectionStringMain();
   IDbConnection conn=dbfactory.createDBConnection(_conString);
   try
   {
    //创建Command对象
    string deletestring="DELETE FROM "+tablename+" WHERE "+conditions;
    IDbCommand cmd=dbfactory.createDBCommand();
    cmd.CommandText=deletestring;
    cmd.Connection=conn;
    //执行删除
    conn.Open();
    cmd.ExecuteNonQuery();
   }
   catch(Exception err)
   {
    DBException DBErr=new DBException(err.Message);
    DBErr.ErrorLayer=DBException.SourceErrorLayer.DataAccessLayer;
    throw(DBErr);
   }
   finally
   {
    if(conn!=null) conn.Close();
   }
  }

  //根据DatabaseType设置本车间数据库连接字符串
  private void SetConnectionString(){
   switch(_DBType) {
    case DBType.SqlServer:
    {
     _conString=ConfigurationSettings.AppSettings["SqlConnectionString"];
     break;
    }
    case DBType.Oracle:
    {
     _conString=ConfigurationSettings.AppSettings["OracleConnectionString"];
     break;
    }
   default:break;
   }
  }

  
  //根据DatabaseType设置主服务器数据库连接字符串
  private void SetConnectionStringMain()
  {
   switch(_DBType)
   {
    case DBType.SqlServer:
    {
     _conString=ConfigurationSettings.AppSettings["SqlConnectionStringMain"];
     break;
    }
    case DBType.Oracle:
    {
     _conString=ConfigurationSettings.AppSettings["OracleConnectionStringMain"];
     break;
    }
    default:break;
   }
  }
  
 }
}


using System;

namespace NCMS.DataAccess
{
 /// <summary>
 /// DBException 的摘要说明。
 /// </summary>
 public class DBException:ApplicationException
 {
  public enum SourceErrorLayer:int{
   success=0,DataAccessLayer,BusinessLayer,WebServiceLayer,UnKnownLayer
  }

        #region DBException的属性
  /// <summary>
  /// 返回请求状态,true--请求成功,false--请求失败
  /// </summary>
  private bool _IsError;
  public bool IsError
  {
   get{
    return _IsError;
   }
   set{
    if(!_IsError)
     _IsError=value;
   }
  }
  /// <summary>
  /// 返回出错层
  /// </summary>
  private SourceErrorLayer _ErrorLayer;
  public SourceErrorLayer ErrorLayer
  {
   get{
    return ErrorLayer;
   }
   set{
    ErrorLayer=value;
    if(value.CompareTo(SourceErrorLayer.success)!=0)
    {
     _IsError=true;
     //_ErrorMsg="系统内部错误!";
    }
    else
    {
     _IsError=false;
     //_ErrorMsg="请求成功!";
    }
   }
  }
  /// <summary>
  /// 出错信息
  /// </summary>
  private string _ErrorMsg;
  public string ErrorMsg
  {
   get{
    return _ErrorMsg;
   }
   set{
    _ErrorMsg=value;
   }
  }
  /// <summary>
  /// 内部错误信息
  /// </summary>
  public String InnerErrorMsg
  {
   get{
    return base.Message;
   }
  }
        #endregion
  public DBException()
  {
   
   _ErrorLayer=SourceErrorLayer.success;
   _IsError=false;
   //ErrorMessage="请求成功!";
  }
  public DBException(string message)
  {
   
   _ErrorMsg=message;
   _IsError=true;
   
  }
 }
}


using System;

namespace NCMS.DataAccess
{
 /// <summary>
 /// DBFactory 的摘要说明。
 /// </summary>
 public class DBFactory
 {
  protected DBFactory(){}
  private static DBFactory _DBfactory=new DBFactory();
        public static DBFactory getDBFactory(){
   return _DBfactory;
        }
  //工厂方法
  public IAbstractDBFactory CreateDBFactory(DBType aType)
  {

   IAbstractDBFactory _AbstractDBFactory=null;
  
   switch(aType)
   {
    case DBType.SqlServer:
    {
     _AbstractDBFactory=new SqlDBFactory();
     break;
    }
    case DBType.Oracle:
    {
     _AbstractDBFactory = new OracleDBFactory();
     break;
    }
    
    default: break;
   }
   return _AbstractDBFactory;
  }
 }
}

using System;

namespace NCMS.DataAccess
{
 /// <summary>
 /// DBType 的摘要说明。
 /// </summary>
 public enum DBType{
  SqlServer=1,
     Oracle
 }
}

using System;
using System.Data;
using System.Data.SqlClient;

namespace NCMS.DataAccess
{
 /// <summary>
 /// IAbstractDBFactory 的摘要说明。
 /// </summary>
 public interface IAbstractDBFactory
 {
  IDbConnection createDBConnection(string connectionstring);
  IDbCommand createDBCommand();
  //createDBCommand的重载 Add By Lucas.F
  IDbCommand createDBCommand(string strcomm,IDbConnection connection);
  IDbDataAdapter createDataAdapter();
  IDbDataParameter createDataParameter();
  IDbDataParameter createDataParameter(string parametername,object parametervalue);
  
  IDataReader createDataReader(IDbCommand aDBCommand);
 }
}


using System;
using System.Data;

namespace NCMS.DataAccess
{
 /// <summary>
 /// IDBAccess 的摘要说明。
 /// </summary>
 public interface IDBAccess
 {
  DataSet Select(string tablename,string columns);
  DataSet Select(string tablename,string columns,string conditions);
  void Insert(string tablename,string values);
  void Insert(string tablename,string columns,string values);
  void Update(string tablename,string values,string conditions);
  void Delete(string tablename,string conditions);
 }
}

using System;
using System.Data;
using System.Data.OleDb;

namespace NCMS.DataAccess
{
 /// <summary>
 /// OracleDBFactory 的摘要说明。
 /// 代替换OleDb->Oracle
 /// </summary>
 public class OracleDBFactory:IAbstractDBFactory
 {
  public OracleDBFactory()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }
#region 覆写IAbstractDBFactory的成员

  public IDbConnection createDBConnection(string connectionstring)
  {
   return new System.Data.OleDb.OleDbConnection(connectionstring);
  }

  public IDbCommand createDBCommand()
  {
   return new System.Data.OleDb.OleDbCommand();
  }
  //createDBCommand的重载 ADD By Lucas.F
        public IDbCommand createDBCommand(string strcomm,IDbConnection connection)
  {
   return new OleDbCommand(strcomm,(OleDbConnection)connection);
  }
  public IDbDataAdapter createDataAdapter()
  {
   return new System.Data.OleDb.OleDbDataAdapter();
  }
  public IDbDataParameter createDataParameter()
  {
   return new System.Data.OleDb.OleDbParameter();
  }

  public IDbDataParameter createDataParameter(string parametername,object parametervalue)
  {
   return new System.Data.OleDb.OleDbParameter(parametername,parametervalue);
  }

  public IDataReader createDataReader(IDbCommand aDBCommand)
  {
   return aDBCommand.ExecuteReader();
  }

  #endregion
 }
}

using System;
using System.Data;
using System.Data.SqlClient;

namespace NCMS.DataAccess
{
 /// <summary>
 /// SqlDBFactory 的摘要说明。
 /// </summary>
 public class SqlDBFactory:IAbstractDBFactory
 {
  public SqlDBFactory()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }
#region 覆写IAbstractDBFactory的成员
  public IDbConnection createDBConnection(string connectionstring){
   return new SqlConnection(connectionstring);
  }
  public IDbCommand createDBCommand()
  {
   return new SqlCommand();
  }
  //createDBCommand的重载
  public IDbCommand createDBCommand(string strcomm,IDbConnection connection)
  {
   return new SqlCommand(strcomm,(SqlConnection)connection);
   
  }
  public IDbDataAdapter createDataAdapter()
  {
   return new SqlDataAdapter();
  }
  public IDbDataParameter createDataParameter()
  {
   return new SqlParameter();
  }

  public IDbDataParameter createDataParameter(string parametername,object parametervalue)
  {
   return new SqlParameter(parametername,parametervalue);
  }
  public IDataReader createDataReader(IDbCommand aDBCommand)
  {
   return aDBCommand.ExecuteReader();
  }

#endregion
 }
}