为了方便的访问数据,微软自己封装了一个数据访问模块, 即Data Access Application Block. 通过它,我们用来访问数据库的编码量大大减少了. 这样的代码既有效率,又减少了出现错误的几率,其益处是可见的. 下面举两个例子比较一下

1. 使用一般的sql语句进行控件绑定, 常规代码如下:

简介微软发布的Data Access Application Block//Create the connection and sql to be executed
简介微软发布的Data Access Application Block
 string strConnTxt = "Server=(local);Database=Northwind;Integrated Security=True;";
简介微软发布的Data Access Application Block 
string strSql = "select * from Products where categoryid = 1"
简介微软发布的Data Access Application Block 
简介微软发布的Data Access Application Block 
//Create and open the connection object
简介微软发布的Data Access Application Block
 SqlConnection objConn = new SqlConnection(strConnTxt);
简介微软发布的Data Access Application Block objConn.Open();
简介微软发布的Data Access Application Block 
简介微软发布的Data Access Application Block 
/Create the connamd object
简介微软发布的Data Access Application BlockSqlCommand objCmd 
= new SqlCommand(strSql, objConn);
简介微软发布的Data Access Application BlockobjCmd.CommandType 
= CommandType.Text;
简介微软发布的Data Access Application Block
简介微软发布的Data Access Application Block
//databind the datagrid by calling the ExecuteReader() method
简介微软发布的Data Access Application Block
DataGrid1.DataSource = objCmd.ExecuteReader();
简介微软发布的Data Access Application BlockDataGrid1.DataBind();
简介微软发布的Data Access Application Block
简介微软发布的Data Access Application Block
//close the connection
简介微软发布的Data Access Application Block
objConn.Close();
如果用微软封装的Data Access Application Block, 其主要是sqlHelper类,代码如下:
简介微软发布的Data Access Application Block//Create the connection string and sql to be executed
简介微软发布的Data Access Application Block
string strSql = "select * from products where categoryid = 1";
简介微软发布的Data Access Application Block
string strConnTxt = "Server=(local);Database=Northwind;Integrated Security=True;";
简介微软发布的Data Access Application Block
简介微软发布的Data Access Application BlockDataGrid1.DataSource 
= SqlHelper.ExecuteReader(strConnTxt, CommandType.Text, strSql);
简介微软发布的Data Access Application BlockDataGrid1.DataBind();

2. 调用存储过程进行控件绑定
常规代码如下:
简介微软发布的Data Access Application Block//Open a connection to Northwind
简介微软发布的Data Access Application Block
SqlConnection objConn = new SqlConnection("Server=(local);Database=Northwind;Integrated Security=True;");
简介微软发布的Data Access Application Block ObjConn.Open();
简介微软发布的Data Access Application Block
简介微软发布的Data Access Application Block 
//Create the stored procedure command object
简介微软发布的Data Access Application Block
 SqlCommand objCmd = new SqlCommand("getProductsCategory", objConn);
简介微软发布的Data Access Application Block objCmd.CommandType 
= CommandType.StoredProcedure;
简介微软发布的Data Access Application Block 
简介微软发布的Data Access Application Block 
//create the parameter object for the stored procedure parameter
简介微软发布的Data Access Application Block
objCmd.Parameter.Add("@CategoryID", SqlDbType.Int);
简介微软发布的Data Access Application BlockobjCmd.Parameter[
"@CategoryID"].Value = 1;
简介微软发布的Data Access Application Block
简介微软发布的Data Access Application Block
//create our DataAdapter and DataSet objects
简介微软发布的Data Access Application Block
SqlDataAdapter objDA = new SqlDataAdapter(objCmd);
简介微软发布的Data Access Application BlockDataSet objDS 
= new DataSet("Category_Results");
简介微软发布的Data Access Application Block
简介微软发布的Data Access Application Block
//fill the dataset
简介微软发布的Data Access Application Block
objDA.Fill(objDS);
简介微软发布的Data Access Application Block
简介微软发布的Data Access Application Block
//databind the datagrid
简介微软发布的Data Access Application Block
DataGrid1.DataSource = objDS;
简介微软发布的Data Access Application BlockDataGrid1.DataBind();
简介微软发布的Data Access Application Block
简介微软发布的Data Access Application Block
//close connection
简介微软发布的Data Access Application Block
objConn.Close();

如果用微软封装的Data Access Application Block,其主要是sqlHelper类,代码如下:
简介微软发布的Data Access Application Blockstring strConn = "Server=(local);Database=Northwind;Integrated Security=True;";
简介微软发布的Data Access Application BlockDataSet objDS 
= SqlHelper.ExecuteDataset(strConn, CommandType.StoredProcedure, "getProductsByCategory"new SqlParameter("@CategoryID"1));
简介微软发布的Data Access Application Block
简介微软发布的Data Access Application BlockDataGrid1.DataSource 
= objDS;
简介微软发布的Data Access Application BlockDataGrid1.DataBind();

Data Access Application Block, 有其封装的源代码和帮助文件,我们也可以根据项目需求做一下改动再编译成dll引入项目,以给项目开发带来便利. 下载地址如下:
http://download.microsoft.com/download/VisualStudioNET/daabref/RTM/NT5/EN-US/DataAccessApplicationBlock.msi

相关文章: