首先是配置文件:其中的providerName就是指定的不同数据库类型

  1. <connectionStrings>
  2. <addnameaddname="..."connectionString="..."providerName="System.Data.OleDb"/>
  3. <addnameaddname="..."connectionString="..."providerName="System.Data.SqlClient"/>
  4. </connectionStrings>

下面看一下使用工厂的这个类:

  1. class DataBaseFac
  2. {
  3. private DbConnection cnn;//抽象类型
  4. private DbCommand cmd;//抽象类型
  5. private DbProviderFactory provider;
  6. public DataBaseFac()
  7. {
  8. //从配置文件中取出标示数据库类型的字符串
  9. string providerName=ConfigurationManager.ConnectionStrings[1].ProviderName;
  10. //根据上一部的结果工厂创建一个对应的实例
  11. provider=DbProviderFactories.GetFactory(providerName);
  12. //使用该实例就可以创建对应的connection,command和adapater对象了
  13. //调试的时候可以看到这几个对象都变成了相应于数据库类型的
  14. cnn=provider.CreateConnection();
  15. cnn.ConnectionString=ConfigurationManager.ConnectionStrings[1].ConnectionString;
  16. cmd=provider.CreateCommand();
  17. cmd.Connection=cnn;
  18. }
  19. //执行一次查询,返回数据表
  20. public DataTable ExcuteQuery(string queryString)
  21. {
  22. DataTable result=new DataTable();
  23. DbDataAdapter adapter=provider.CreateDataAdapter();
  24. cmd.CommandType=CommandType.Text;
  25. cmd.CommandText=queryString;
  26. adapter.SelectCommand=cmd;
  27. try
  28. {
  29. cnn.Open();
  30. adapter.Fill(result);
  31. }
  32. catch
  33. {
  34. result=null;
  35. }
  36. finally
  37. {
  38. cnn.Close();
  39. }
  40. return result;
  41. }

C#实现工厂模式简介--实现访问不同的数据库相关推荐

  1. 【设计模式】抽象工厂模式 ( 简介 | 适用场景 | 优缺点 | 产品等级结构和产品族 | 代码示例 )

    文章目录 一.抽象工厂模式简介 二.抽象工厂模式适用场景 三.抽象工厂模式优缺点 四.产品等级结构和产品族 五.抽象工厂模式代码示例 1.冰箱抽象类 2.美的冰箱实现类 3.格力冰箱实现类 4.空调抽 ...

  2. 工厂模式简介-作用和好处

    工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A(). 工厂模式也是用来创建实例对象的,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改 ...

  3. Net设计模式之抽象工厂模式(Abstract Factory Pattern)(1)

    一.抽象工厂模式简介(Bref Introduction) 抽象工厂模式(Abstract Factory Pattern),提供一个创建一系列相关或者相互依赖对象的接口,而无需制定他们的具体类.优点 ...

  4. JAVA 设计模式(三)—— 设计模式之工厂模式

    文章目录 一.工厂模式概述 1.工厂模式简介 2.工厂模式分类 二.简单工厂模式 1.简单工厂模式示例 2.简单工厂模式分析 三.工厂方法模式 1.工厂方法模式示例 2.工厂方法模式分析 四.抽象工厂 ...

  5. 【JavaScript设计模式张容铭】抽象工厂模式深度剖析——关于继承与constructor属性的深度理解

    写在前面 最近阅读了张容铭的<JavaScript设计模式>一书,阅读到抽象工厂模式一节时对书上的代码产生了疑问,但同时在解决疑问的过程中,对继承又产生了新的理解. 我仔细查阅了很多文章, ...

  6. 研磨23种大话设计模式------简单工厂模式 + 工厂方法模式 + 抽象工厂模式

    大家好,我是一位在java学习圈中不愿意透露姓名并苟且偷生的小学员,如果文章有错误之处,还望海涵,欢迎多多指正 如果你从本文 get 到有用的干货知识,请帮忙点个赞呗,据说点赞的都拿到了offer 简 ...

  7. 工厂模式(Factory Patter)

    1.工厂模式简介 工厂模式属于创建型模式,是专门用来创建对象的模式,抽象了实例化的过程.工厂模式分为 : 工厂方法模式.抽象工厂模式. 在学习工厂方法模式.抽象工厂之前,首先先要了解一下简单工厂模式, ...

  8. GOF23设计模式(创建型模式)工厂模式

    目录: 一:工厂模式的核心本质 二:关于面向对象的六大基本原则 三:工厂模式的三大类详解(代码示例,详细分析) 首先,上咱本GOF23所有工厂模式的分类表格!!! 创建型模式 单例模式.工厂模式.抽象 ...

  9. Net设计模式之简单工厂模式(Simple Factory Pattern)

    一.简单工厂模式简介(Bref Introduction)        简单工厂模式(Simple Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实 ...

最新文章

  1. 输入法半角和全角的快捷转换_日语输入法究极指南
  2. 结构型模式---适配器模式
  3. python画折线图详解-python绘制简单折线图代码示例
  4. 力扣【每日温度】leetcode-739.每日温度:单调栈解法
  5. 服务器怎么查看性能,查看服务器进程性能查看
  6. 去中心化多链钱包CoinU 30问(你想要的答案都在这里)
  7. 天池 在线编程 输入流
  8. docker搭建pxc集群
  9. iis 创建应用程序池的方法与分析第3/3页
  10. 【SEU程序设计课笔记】 Mooc - Chapter 5 - (EX) - 猜数字游戏
  11. Yate学习--基于Windows安装和运行Yate
  12. OSChina 周三乱弹 —— who's your 大爷
  13. 使用Arduino读取RC接收机PWM信号的三种方式
  14. FZU 1275和UVA11624
  15. Linux进阶 | 实现负载均衡高可用(LB+HA)Web服务
  16. TCP连接的建立和中止
  17. CAD图纸怎么转换PDF格式?怎样转换更加高效?
  18. 基于 Milvus 的以图搜图系统 2.0
  19. PEG磷酸盐mPEG-phosphoric acid,Phosphate-PEG,甲氧基聚乙二醇磷酸,一种表面活性PEG衍生物
  20. unity基础(8)——3D场景添加音频

热门文章

  1. Unity官方离线中文文档大集合
  2. [2019年]研究生数学建模竞赛
  3. IDEA中项目集成git提交代码详细步骤
  4. 杰理之高频杂散超标【篇】
  5. linux下编译zip,C++中ZipArchive压缩与解压的编译安装与使用
  6. 小小几张图,把深度学习讲透彻
  7. Linux系统下生成证书 https证书
  8. 文件IO编程之学习总结
  9. 四、WebDriver(Selenium 2.0)
  10. C#与雷塞运动控制卡Dmc1380源码三轴点动运动 手动与自动位置设定