java中冒泡排序 c#中的数据库访问工厂
c#中的数据库访问工厂
上午看到一个兄弟的文章 很辛苦的想实现不改代码只改配置来访问不同类型的数据库 自己去实现工厂模式 精神可嘉 但是殊不知c#已经自己为不同类型数据库的访问做了一个工厂 在这里我就把使用工厂的例子贴出来供不知道的兄弟参考一下 高手们可以忽略了
首先是配置文件 其中的providerName就是指定的不同数据库类型

<connectionStrings> <add name= connectionString= providerName= System Data OleDb /> <add name= connectionString= providerName= System Data SqlClient /> </connectionStrings>
下面看一下使用工厂的这个类
class DataBaseFac { private DbConnection cnn;//抽象类型 private DbCommand cmd;//抽象类型 private DbProviderFactory provider; public DataBaseFac() { //从配置文件中取出标示数据库类型的字符串 string providerName = ConfigurationManager ConnectionStrings[ ] ProviderName; //根据上一部的结果工厂创建一个对应的实例 provider = DbProviderFactories GetFactory(providerName); //使用该实例就可以创建对应的connection mand和adapater对象了 //调试的时候可以看到这几个对象都变成了相应于数据库类型的 cnn = provider CreateConnection(); cnn ConnectionString = ConfigurationManager ConnectionStrings[ ] ConnectionString; cmd = provider CreateCommand(); cmd Connection = cnn; } //执行一次查询 返回数据表 public DataTable ExcuteQuery(string queryString) { DataTable result = new DataTable(); DbDataAdapter adapter = provider CreateDataAdapter(); cmd CommandType = CommandType Text; cmd CommandText = queryString; adapter SelectCommand = cmd; try { cnn Open(); adapter Fill(result); } catch { result = null; } finally { cnn Close(); } return result; }
以上只是简单的应用 并没有做比较高级的封装 只供不知道的兄弟参考
lishixinzhi/Article/program/net/201311/15456