1. 激动人心的data access功能?
2. 一个简单的示例
1. 激动人心的data access application block,原来数据访问时如此简单
你试着想过通过一行代码得到存储过程返回的DataSet吗?或者你知道什么代码是ado.net的最佳实践吗?好的,Data Access Application Block提供了这些问题的答案。Data Access Application Block提供了从数据库中读取dataset,更新数据库,取得存储过程返回值等。
2. 一个简单web的示例
该示例是一个asp.net web site。具体过程如下:
首先新建asp.net web application。添加引用。
使用EntLibConfig.exe打开web.config文件。由于vs生成的模板中已经包含了两个connectionString,选择其中的ApplicationServices作为default database instance,
设置connection string。
编写程序代码,这里使用的entlib的ioc来实现的。
Dao类:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace DataAccessApplicationBlockTest { using Microsoft.Practices.EnterpriseLibrary.Data; using System.Data; using System.Data.Common; public class Dao { private Database db; // IoC public Dao(Database db) { this.db = db; } public DataSet GetPollDataSet() { string sql = "select * from Poll"; DbCommand command = db.GetSqlStringCommand(sql); return db.ExecuteDataSet(command); } } }
页面后置代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Microsoft.Practices.EnterpriseLibrary.Data; using System.Data; using Microsoft.Practices.Unity; using Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Unity; using Microsoft.Practices.EnterpriseLibrary.Common.Configuration; using System.Data.Common; namespace DataAccessApplicationBlockTest { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { var container = new UnityContainer().AddNewExtension<EnterpriseLibraryCoreExtension>(); Dao dao = EnterpriseLibraryContainer.Current.GetInstance<Dao>(); this.GridView1.DataSource = dao.GetPollDataSet(); this.GridView1.DataBind(); } } } }
本博客均是本人在学习过程中的总结,其中难免存在不足之处,欢迎指正。