为了方便的访问数据,微软自己封装了一个数据访问模块,即DataAccessApplicationBlock.通过它,我们用来访问数据库的编码量大大减少了.这样的代码既有效率,又减少了出现错误的几率,其益处是可见的.下面举两个例子比较一下
1.使用一般的sql语句进行控件绑定,常规代码如下:
1//Createtheconnectionandsqltobeexecuted
2stringstrConnTxt="Server=(local);Database=Northwind;IntegratedSecurity=True;";
3stringstrSql="select*fromProductswherecategoryid=1"
4
5//Createandopentheconnectionobject
6SqlConnectionobjConn=newSqlConnection(strConnTxt);
7objConn.Open();
8
9//Createtheconnamdobject
10SqlCommandobjCmd=newSqlCommand(strSql,objConn);
11objCmd.CommandType=CommandType.Text;
12
13//databindthedatagridbycallingtheExecuteReader()method
14DataGrid1.DataSource=objCmd.ExecuteReader();
15DataGrid1.DataBind();
16
17//closetheconnection
18objConn.Close();如果用微软封装的DataAccessApplicationBlock,其主要是sqlHelper类,代码如下:
1//Createtheconnectionstringandsqltobeexecuted
2stringstrSql="select*fromproductswherecategoryid=1";
3stringstrConnTxt="Server=(local);Database=Northwind;IntegratedSecurity=True;";
4
5DataGrid1.DataSource=SqlHelper.ExecuteReader(strConnTxt,CommandType.Text,strSql);
6DataGrid1.DataBind();
2.调用存储过程进行控件绑定
常规代码如下:
1//OpenaconnectiontoNorthwind
2SqlConnectionobjConn=newSqlConnection("Server=(local);Database=Northwind;IntegratedSecurity=True;");
3ObjConn.Open();
4
5//Createthestoredprocedurecommandobject
6SqlCommandobjCmd=newSqlCommand("getProductsCategory",objConn);
7objCmd.CommandType=CommandType.StoredProcedure;
8
9//createtheparameterobjectforthestoredprocedureparameter
10objCmd.Parameter.Add("@CategoryID",SqlDbType.Int);
11objCmd.Parameter["@CategoryID"].Value=1;
12
13//createourDataAdapterandDataSetobjects
14SqlDataAdapterobjDA=newSqlDataAdapter(objCmd);
15DataSetobjDS=newDataSet("Category_Results");
16
17//fillthedataset
18objDA.Fill(objDS);
19
20//databindthedatagrid
21DataGrid1.DataSource=objDS;
22DataGrid1.DataBind();
23
24//closeconnection
25objConn.Close();如果用微软封装的DataAccessApplicationBlock,其主要是sqlHelper类,代码如下:
1stringstrConn="Server=(local);Database=Northwind;IntegratedSecurity=True;";
2DataSetobjDS=SqlHelper.ExecuteDataset(strConn,CommandType.StoredProcedure,"getProductsByCategory",newSqlParameter("@CategoryID",1));
3
4DataGrid1.DataSource=objDS;
5DataGrid1.DataBind();
DataAccessApplicationBlock,有其封装的源代码和帮助文件,我们也可以根据项目需求做一下改动再编译成dll引入项目,以给项目开发带来便利.下载地址如下:
http://download.microsoft.com/download/VisualStudioNET/daabref/RTM/NT5/EN-US/DataAccessApplicationBlock.msi