在一个DataSet中储存多个数据表 我们在ASP中很多人习惯于使用RecordSet对象来操作数据库,但是RecordSet有一个的缺点就是一个RecordSet只能储存一个数据表,当我们需要操作多个表时,不得不在多个RecordSet中来回操作,虽然这些在使用习惯后也没有什么,但是对一个新手来说,这也是一个很麻烦人的事情。光是那些变量名就可以搞浑你,现在好了,在ASP.Net中,只需要一个DataSet就可以完成一切。大大的方便了我们的程序。先看一段程序,再来细细讲解。
代码拷贝框<% @ Page Language="C#" %> <% @ Import Namespace="System.Data" %> <% @ Import Namespace="System.Data.ADO" %> <Script Language="C#" Runat="Server"> public void Page_Load(Object src,EventArgs e) { //联结语句 string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=D:\test.mdb;"; string strComm1 = "select * from UserList"; string strComm2 = "select * from BookList"; //打开一个联结 ADOConnection MyConnection = new ADOConnection(MyConnString); //打开两个DataSetCommand ADODataSetCommand MyComm1 = new ADODataSetCommand(strComm1,MyConnection); ADODataSetCommand MyComm2 = new ADODataSetCommand(strComm2,MyConnection); DataSet MyDataSet = new DataSet(); //把UserList,BookList表存入DataSet MyComm1.FillDataSet(MyDataSet,"UserList"); MyComm2.FillDataSet(MyDataSet,"BookList"); DataGrid1.DataSource = MyDataSet.Tables["UserList"].DefaultView; DataGrid2.DataSource = MyDataSet.Tables["BookList"].DefaultView; DataGrid1.DataBind(); DataGrid2.DataBind(); } </script> <html> <head> <title></title> </head> <body> <table> <tr> <td> <ASP:DataGrid id="DataGrid1" runat="server" BorderColor="black" BorderWidth="1" GridLines="Both" CellPadding="3" CellSpacing="0" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" AlternatingItemStyle-BackColor="#eeeeee" /> </td> <td> <ASP:DataGrid id="DataGrid2" runat="server" BorderColor="black" BorderWidth="1" GridLines="Both" CellPadding="3" CellSpacing="0" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" AlternatingItemStyle-BackColor="#eeeeee" /> </td> </tr> </table> </body> </html> [Ctrl+A 全部选择 然后拷贝]
在上面的例子中,我们打开了一个名为test.mdb的Access数据库,然后把他其中的两个表"UserList"和"BookList"使用两个DataGrid控件显示出来。 我们现在来分析一下代码: string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=D:\test.mdb;"; string strComm1 = "select * from UserList"; string strComm2 = "select * from BookList"; ADOConnection MyConnection = new ADOConnection(MyConnString); ADODataSetCommand MyComm1 = new ADODataSetCommand(strComm1,MyConnection); ADODataSetCommand MyComm2 = new ADODataSetCommand(strComm2,MyConnection); 这些都只是在作一些准备工作,打开一个联结,并且打开两个DataSetCommand取得两个表的数据。 DataSet MyDataSet = new DataSet(); 这是我们程序的关键之地,这里打开了我们要操作的DataSet对象。下面我们就需要将数据表的内容填入DataSet了。 MyComm1.FillDataSet(MyDataSet,"UserList"); MyComm2.FillDataSet(MyDataSet,"BookList"); 在一个DataSet中可以包含多种数据,这里我们是往这个名为MyDataSet的DataSet中存放了两个数据库表,其实只要愿意,我们还可以在里面插入XML数据,而且他们是不会出现冲突的。 再下面的代码,就是把MyDataSet的数据传送给DataGrid控件显示。这里就不多说了。 这里我们只是简单的说了一下DataSet能存放多个数据表的功能,大家看看好像没有什么特别的。这里看起来确实好像没有什么特别的功能,但是如果配上DataSet中的修改、添加、删除功能,我们操作数据库就变得很简单。我们可以先将数据库读入DataSet,然后在DataSet中修改数据,如果改得觉得不满意,我们还可以使用RejectChanges方法全面恢复,最后一并交给去数据库去更新。
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18