Shine

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

Microsoft.Practices.EnterpriseLibrary连接Oracle

Microsoft Enterprise Library用起来也是挺不错的,对于习惯自己写sql语句的开发者们,这个应该挺好的。下面以连接Oracle为例简单介绍下如何连接数据库。
首先下载Microsoft Enterprise Library 5.0:http://www.microsoft.com/en-us/download/details.aspx?id=15104
这是一个安装包Enterprise Library 5.0.msi,选择目录后安装。
1、引用dll
安装后在安装目录下找到以下dll:

先复制到项目目录先,并引用。
2、配置连接数据库的配置文件
你可以利用程序配置,也可以生成一个空白文档手动配置。如图,

第一步,运行安装目录下EntLibConfig.exe:

第二步,选择blocks菜单配置数据库连接

第三步,配置连接数据库,也可以直接File-save as保存为一个空config文件手动配置:

这里是保存一个空的配置进行手动配置,空配置如下:

  1. <configuration>  
  2.     <configSections>  
  3.         <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />  
  4.     </configSections>  
  5.     <dataConfiguration defaultDatabase="Connection String" />  
  6.     <connectionStrings>  
  7.         <add name="Connection String" connectionString="Database=Database;Server=(local)\SQLEXPRESS;Integrated Security=SSPI"  
  8.             providerName="System.Data.SqlClient" />  
  9.     </connectionStrings>  
  10. </configuration>  

手动配置,这里以oracle为例进行配置。如下:

  1. <?xml version="1.0"?>  
  2. <configuration>  
  3.   <configSections>  
  4.     <!--添加配置企业库(1)-->  
  5.     <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,   
  6.              Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />  
  7.   </configSections>  
  8.   <!--添加配置企业库(2)-->  
  9.   <dataConfiguration defaultDatabase="Oracle.ConnectionString"/>  
  10.   <!--添加配置企业库(3)-->  
  11.   <connectionStrings>  
  12.     <add name="Oracle.ConnectionString" connectionString="Data Source=数据库名;Persist Security Info=True;  
  13.          User ID=用户名;Password=密码;Unicode=True" providerName="System.Data.OracleClient"/>  
  14.   </connectionStrings>  
  15. </configuration>  


好了,这些准备工作完成了,下面看代码中如何使用吧。这里测试读取,当然其他的操作都一样。

[csharp] view plaincopyprint?
 
  1. public class OracleSqlHelper  
  2. {  
  3.     private static Database db = null;  
  4.   
  5.     public static DataSet GetDataTable( string commandText)  
  6.     {  
  7.         try  
  8.         {  
  9.             DataSet resultDataSet = null;  
  10.   
  11.             db = DatabaseFactory.CreateDatabase();//建立数据库连接  
  12.   
  13.             resultDataSet =db.ExecuteDataSet(CommandType.Text, commandText);//执行  
  14.   
  15.             return resultDataSet;  
  16.         }  
  17.         catch (Exception ex)  
  18.         {  
  19.             return null;  
  20.   
  21.             throw ex;  
  22.         }  
  23.     }  
  24. }  
  25.   
  26. public class OracleDataProvider  
  27. {  
  28.     public static DataTable  TestReadTable(string id)  
  29.     {  
  30.         DataTable dataTable = null;  
  31.   
  32.         try  
  33.         {  
  34.             string commandText = "select tu.name from tabUser tu";  
  35.   
  36.             DataSet resultTable = OracleSqlHelper.GetDataTable(commandText);  
  37.   
  38.             int table = resultTable != null ? resultTable.Tables.Count : 0;  
  39.   
  40.             if (table > 0)  
  41.             {  
  42.                 dataTable = resultTable.Tables[0];  
  43.             }  
  44.         }  
  45.         catch (Exception e)  
  46.         {  
  47.             throw e;  
  48.         }  
  49.   
  50.         return dataTable;  
  51.     }  
  52. }  

调用
object result = OracleDataProvider.TestReadTable("110");

当然这里仅仅是企业库进行连接数据库的用法,所以可以将用到的dll复制单独使用。如果针对大型应用的话,当然不会这么简单。应该安装所有dll,并且使用EntLibConfig.exe在block下进行配置所需要的功能的配置文件。

代码下载:http://download.csdn.net/detail/yysyangyangyangshan/4980494

原文来自:http://blog.csdn.net/yysyangyangyangshan/article/details/8488791

posted on 2015-07-29 08:55  lizongshen1990  阅读(179)  评论(0)    收藏  举报