RoyYang

快乐工作,快乐生活!

导航

使用企业库(Enterprise Library)的DAAB模块(一)

企业库(Enterprise Library)的webcast:

http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/Series/EntLib.aspx

 

什么是企业库?

微软开发的可充用的程序块(Application Block)库,来解决企业级系统开发过程中遇到的一些共同的问题,如日志、数据访问、错误处理,认证,缓存等等。

企业库实现了微软提倡的最佳实践(Best practices),是免费,开源的,可重用,可扩展,可修改。

 

Data Access Application Block(DAAB)是企业库中最常用的一个模块。

 

从微软网站上可以下载企业库,我装的是3.1版本。下载企业库

安装完成后,就在vs2005中创建一个web项目,来感受一下企业库的使用。

添加web.config文件,右键,出现下图:

 

单击后进入到企业库的配置界面,可以看到DAAB模块,其中Connection string自然就是数据库的连接字符串。缺省的LocalSqlServer值指向的是SQLExpress数据库,不知道为什么,每次修改了LocalSqlServer的值,保存再打开企业库的编辑界面,它又指向SqlExpress数据库了。我只好新建了一个字符串叫“Default Server”,指向Sql 2000的数据库。

再左键单击“Data Access Application Block”节点,属性窗口中找到“DefaultDatabase”属性,下拉选择“Default Server”,将其设置为缺省的连接字符串。

保存,在直接双击web.config,为发现多了一段Xml代码,

  <dataConfiguration defaultDatabase="Default Server" />
  
<connectionStrings>
    
<add name="Default Server" connectionString="Data Source=.;Initial Catalog=pubs;Integrated Security=True"
      providerName
="System.Data.SqlClient" />
  
</connectionStrings>

要在程序中使用DAAB中的类,必须添加对DAAB的引用。

并且在Default.aspx.cs中引用“Microsoft.Practices.EnterpriseLibrary.Data”命名空间。

 

在page_load事件中,添加如下代码: 

        string sql = "SELECT * FROM sales";
        Database db 
= DatabaseFactory.CreateDatabase();
        IDataReader reader 
= db.ExecuteReader(CommandType.Text, sql);
        GridView1.DataSource 
= reader;
        GridView1.DataBind();

 运行后就能看到数据显示到gridview上了。

 

而如果使用常规的ADO.NET的类,代码则多多了:

        string strConn = "Data Source=.;Initial Catalog=Pubs;Integrated Security=True";
        
string sql = "SELECT * FROM sales";

        SqlConnection conn 
= new SqlConnection(strConn);
        conn.Open();

        SqlCommand command 
= conn.CreateCommand();
        command.CommandType 
= CommandType.Text;
        command.CommandText 
= sql;

        GridView1.DataSource 
= command.ExecuteReader();
        GridView1.DataBind();

        conn.Close();

 

而且DAAB的最简化的代码可以写成:

        string sql = "SELECT * FROM sales";
        GridView1.DataSource 
= DatabaseFactory.CreateDatabase().ExecuteReader(CommandType.Text, sql);
        GridView1.DataBind();

 

因此,相比于常规的ADO.NET,DAAB有如下的特点:

1.DAAB进行了封装,可以使用更简单、高效的代码来打到相同目的。

2.对不同的数据库(SQL Server/Oracle等)提供了统一的编程实现。比如不管是任何类型的数据库返回的数据集都用IDataReader,而不是像ADO.NET中要分别使用SqlDataReader,OracleDataReader.

 

 

posted on 2008-08-27 23:38  RoyYang  阅读(895)  评论(0编辑  收藏  举报