Enterprise Library4.0 Data Access Application Block实例讲解

Enterprise Library 4.0 – May 2008Microsoft patterns & practices Enterprise Library的新的版本,Enterprise Library有一系列的应用程序块及一个核心的特性(诸如对象创建、配置文件机制)组成,所有的这些都是可重用的组件,他们被设计来帮助开发人员应对常见的企业开发所面临的挑战,4.0这个版本还添加了一个新的应用程序块- Unity Application Block,这个新的应用程序块为对象产生和依赖注入提供了容器,除此以外4.0还添加了一些其他的新特性.

下面我们就用实例的方式来运用Data Access Application Block:

首先我们需要在项目中引用两个dll

Microsoft.Practices.EnterpriseLibrary.Common.dll;

Microsoft.Practices.EnterpriseLibrary.Data.dll;

在项目中添加配置文件app.config或者web.config

然后右键config文件选择Edit Enterprise Library Configuration打开界面化的配置文件编辑工具:

打开编辑工具后

设置LocalSqlServer的相关参数,例如:

参数说明:

1.ConnectionString:连接字符串。

2.ProviderName:数据库适配器类型。

3.NameConnection String的名字。

Data Access Application BlockDefaultDatabase属性值设置为刚才你设置的LocalSqlServer的名称,如下图:

至此,我们的Data最简洁的配置就完成了,下面我们开始完成我们代码的编写

1.  首先我们创建DataBase的实例:

//实例化Database

Database db = DatabaseFactory.CreateDatabase("NorthWindDB");

2.  创建DbCommand对象(1.普通sql语句执行的cmd2.存储过程执行的cmd)

//创建普通sql语句执行的DbCommand对象

DbCommand dbCmd = db.GetSqlStringCommand("sql语句");           

//创建存储过程执行的DbCommand对象 方法一           

DbCommand dbCmd = db.GetSqlStringCommand("存储过程的名称");

dbCmd.CommandType = CommandType.StoredProcedure;           

//创建存储过程执行的DbCommand对象 方法二

DbCommand dbCmd = db.GetStoredProcCommand("存储过程的名称");

如果需要为存储过程传递参数则添加下面代码

db.AddInParameter(dbCmd, "OrderID", DbType.Int32, "参数的值");//"OrderID"为存储过程对应的参数名,第三个参数为参数类型

3.  执行sql语句或者存储过程

通常情况下,我们需要返回DataSetDataReader和单值,要得到这三种返回我们可以分别加上下面的代码:

DataSet ds = db.ExecuteDataSet(dbCmd); //获取DataSet

IDataReader dr = db.ExecuteReader(dbCmd); //获取DataReader

string singleValue = db.ExecuteScalar(dbCmd).ToString();//获取单值,类型你可以根据你的需要去设置

好了,这样以后我们就可以使用我们获取到的DataSetDataReader和单值进行我们自己其他的一下操作了(显示、打印等)

除了上面我们列举的一些常见的使用以外,我们在实际的开发当中还可能经常性的使用事务,下面我列出了事务的使用方式:

DbCommand procCmd1 = null;

            DbCommand procCmd2 = null;

            using (IDbConnection con = db.CreateConnection())

            {

                con.Open();

                IDbTransaction tran = con.BeginTransaction();

                try

                {

                    //执行两个存储过程

                    procCmd1 = db.GetStoredProcCommand("存储过程1");  

                    procCmd2 = db.GetStoredProcCommand("存储过程2");

                    db.AddInParameter(procCmd2, "OrderID", DbType.Int32, 10248); //第四个参数是存储过程参数的值,第二个参数是存储过程的参数的名称

                    tran.Commit();

                }

                catch (Exception ee)

                {

                    tran.Rollback();

                }

                finally

                {

                    con.Close();

                }

            }

好了,到这里实例就写完了。^^ Brave chen

 

转载于:https://www.cnblogs.com/bravechen/archive/2008/11/27/1342291.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Microsoft.Practices.EnterpriseLibrary.Data是一个强大的.NET框架,用于开发企业级应用程序。连接字符串是用于连接到数据库的重要组成部分。在某些情况下,我们需要对连接字符串进行加密以增加安全性。 要对连接字符串进行加密,我们可以使用Microsoft提供的企业库(Enterprise Library)中的数据访问块(Data Access Block)。以下是一些步骤: 1. 首先,我们需要在项目中添加对Microsoft.Practices.EnterpriseLibrary.Data的引用。可以通过NuGet包管理器来安装。 2. 接下来,我们需要在config文件中定义连接字符串。可以使用app.config(用于Windows桌面应用程序)或web.config(用于Web应用程序)文件。例如: ``` <connectionStrings> <add name="MyDatabase" connectionString="[Your Connection String Here]" providerName="System.Data.SqlClient" /> </connectionStrings> ``` 3. 然后,我们需要在config文件中配置加密。可以在configSections中添加以下配置: ``` <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data" /> ``` 并在configuration节点下添加以下配置: ``` <dataConfiguration defaultDatabase="MyDatabase" /> ``` 4. 接下来,我们需要使用工具对连接字符串进行加密。可以使用命令行实用程序`encrypt.exe`,该程序位于Enterprise Library安装目录的bin文件夹中。 打开命令提示符,并导航到`encrypt.exe`所在的目录。然后使用以下命令对连接字符串进行加密: ``` encrypt.exe -section:connectionStrings -prov DataProtectionConfigurationProvider -appConfig "path\to\your\config\file" ``` 这将使用Windows数据保护API对连接字符串进行加密,并将结果存储在config文件中。 5. 最后,我们可以在代码中使用加密后的连接字符串。使用DatabaseFactory类的CreateDatabase方法来获取数据库实例。例如: ```csharp Database db = DatabaseFactory.CreateDatabase(); ``` 通过以上步骤,我们可以使用Microsoft.Practices.EnterpriseLibrary.Data的加密功能对连接字符串进行加密。这将增加我们应用程序的安全性,并保护敏感的数据库连接信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值