• 实现工厂模式下不同的数据库连接


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

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

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

    1. class DataBaseFac  
    2. {  
    3. private DbConnection cnn;//抽象类型  
    4. private DbCommand cmd;//抽象类型  
    5. private DbProviderFactory provider;  
    6. public DataBaseFac()  
    7. {  
    8.  
    9. //从配置文件中取出标示数据库类型的字符串  
    10. string providerName=ConfigurationManager.ConnectionStrings[1].ProviderName;  
    11.  
    12. //根据上一部的结果工厂创建一个对应的实例  
    13. provider=DbProviderFactories.GetFactory(providerName);  
    14.  
    15. //使用该实例就可以创建对应的connection,command和adapater对象了  
    16.  
    17. //调试的时候可以看到这几个对象都变成了相应于数据库类型的  
    18. cnn=provider.CreateConnection();  
    19. cnn.ConnectionString=ConfigurationManager.ConnectionStrings[1].ConnectionString;  
    20. cmd=provider.CreateCommand();  
    21. cmd.Connection=cnn;  
    22. }  
    23.  
    24. //执行一次查询,返回数据表  
    25.  
    26. public DataTable ExcuteQuery(string queryString)  
    27. {  
    28. DataTable result=new DataTable();  
    29. DbDataAdapter adapter=provider.CreateDataAdapter();  
    30. cmd.CommandType=CommandType.Text;  
    31. cmd.CommandText=queryString;  
    32. adapter.SelectCommand=cmd;  
    33. try  
    34. {  
    35. cnn.Open();  
    36. adapter.Fill(result);  
    37. }  
    38. catch  
    39. {  
    40. result=null;  
    41. }  
    42. finally  
    43. {  
    44. cnn.Close();  
    45. }  
    46. return result;  
    47.  
  • 相关阅读:
    浅析MySQL关联left join 条件on与where的区别
    c语言 char * char** 指针 * 和**
    MVC实用构架实战(一)——项目结构搭建
    实现存储过程自动执行jobs
    Oracle 建立索引及SQL优化
    vue vhtml table里内容不换行 带省略号
    canvas lineTo 理解
    canvas quadraticCurveTo 二次贝塞尔曲线
    canvas arc 画园
    Java对象内存模型
  • 原文地址:https://www.cnblogs.com/yuloe2012/p/2779732.html
Copyright © 2020-2023  润新知