为了方便的访问数据,微软自己封装了一个数据访问模块, 即Data Access Application Block. 通过它,我们用来访问数据库的编码量大大减少了. 这样的代码既有效率,又减少了出现错误的几率,其益处是可见的. 下面举两个例子比较一下
1. 使用一般的sql语句进行控件绑定, 常规代码如下:
1 // Create the connection and sql to be executed 2 string strConnTxt = " Server=(local);Database=Northwind;Integrated Security=True; " ; 3 string strSql = " select * from Products where categoryid = 1 " 4 5 // Create and open the connection object 6 SqlConnection objConn = new SqlConnection(strConnTxt); 7 objConn.Open(); 8 9 // Create the connamd object 10 SqlCommand objCmd = new SqlCommand(strSql, objConn); 11 objCmd.CommandType = CommandType.Text; 12 13 // databind the datagrid by calling the ExecuteReader() method 14 DataGrid1.DataSource = objCmd.ExecuteReader(); 15 DataGrid1.DataBind(); 16 17 // close the connection 18 objConn.Close();如果用微软封装的Data Access Application Block, 其主要是sqlHelper类,代码如下:
1 // Create the connection string and sql to be executed 2 string strSql = " select * from products where categoryid = 1 " ; 3 string strConnTxt = " Server=(local);Database=Northwind;Integrated Security=True; " ; 4 5 DataGrid1.DataSource = SqlHelper.ExecuteReader(strConnTxt, CommandType.Text, strSql); 6 DataGrid1.DataBind(); 2. 调用存储过程进行控件绑定常规代码如下: 1 // Open a connection to Northwind 2 SqlConnection objConn = new SqlConnection( " Server=(local);Database=Northwind;Integrated Security=True; " ); 3 ObjConn.Open(); 4 5 // Create the stored procedure command object 6 SqlCommand objCmd = new SqlCommand( " getProductsCategory " , objConn); 7 objCmd.CommandType = CommandType.StoredProcedure; 8 9 // create the parameter object for the stored procedure parameter 10 objCmd.Parameter.Add( " @CategoryID " , SqlDbType.Int); 11 objCmd.Parameter[ " @CategoryID " ].Value = 1 ; 12 13 // create our DataAdapter and DataSet objects 14 SqlDataAdapter objDA = new SqlDataAdapter(objCmd); 15 DataSet objDS = new DataSet( " Category_Results " ); 16 17 // fill the dataset 18 objDA.Fill(objDS); 19 20 // databind the datagrid 21 DataGrid1.DataSource = objDS; 22 DataGrid1.DataBind(); 23 24 // close connection 25 objConn.Close(); 如果用微软封装的Data Access Application Block,其主要是sqlHelper类,代码如下: 1 string strConn = " Server=(local);Database=Northwind;Integrated Security=True; " ; 2 DataSet objDS = SqlHelper.ExecuteDataset(strConn, CommandType.StoredProcedure, " getProductsByCategory " , new SqlParameter( " @CategoryID " , 1 )); 3 4 DataGrid1.DataSource = objDS; 5 DataGrid1.DataBind(); Data Access Application Block, 有其封装的源代码和帮助文件,我们也可以根据项目需求做一下改动再编译成dll引入项目,以给项目开发带来便利. 下载地址如下:http://download.microsoft.com/download/VisualStudioNET/daabref/RTM/NT5/EN-US/DataAccessApplicationBlock.msi