- Login
帳號:
密碼:
ASP MENU
線上教學
   ASP 教學
VB.NET 教學
JSP 教學
JAVA 教學
完整 ASP 教學
程式下載
   ASP 程式下載
提供 ASP 程式
程式量身訂做
   收費標準
填寫需求表
討論交流專區
   程式討論區
電腦資訊交流
工作機會
   社會人就職情報
汎亞人力銀行
大台中人力銀行
大高雄人力銀行
相關連結
   ASP 虛擬空間
ASP 相關網站
聯絡我們
   意見信箱
加入會員程式討論區線上購物回首頁
ASP 教學
親密接觸ASP.Net(9)
我們繼續前面的內容,呵呵,這次主要是講DataSet的強大功能啦:)。上次吹了大家的泡泡(說話不算數的意思,湖南人都能聽懂吧:)),這次一定不能再食言了:)

在一個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=c:/test/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>

在上面的例子中,我們打開了一個名為test.mdb的Access數據庫,然後把他其中的兩個表"UserList"和"BookList"使用兩個DataGrid控件顯示出來。顯示的圖片如下:


圖9-1

我們現在來分析一下代碼:

string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/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");

這堿O我們今天的主要內容。前面的幾章曾經說過,在一個DataSet中可以包含多種數據,這塈畯怓O往這個名為MyDataSet的DataSet中存放了兩個數據庫表,其實只要願意,我們還可以在堶探﹞JXML數據,而且他們是不會出現衝突的。大家可以放心使用,呵呵。

再下面的代碼,就是把MyDataSet的數據傳送給DataGrid控件顯示。這奡N不多說了。

這塈畯怚u是簡單的說了一下DataSet能存放多個數據表的功能,大家看看好像沒有什麼特別的。這堿搯_來確實好像沒有什麼特別的功能,但是如果配上DataSet中的修改、添加、刪除功能,我們操作數據庫就變得很簡單。我們可以先將數據庫讀入DataSet,然後在DataSet中修改數據,如果改得覺得不滿意,我們還可以使用RejectChanges方法全面恢復,最後一併交給去數據庫去更新。

下一節,我們再來講解,如何使用DataSet來添加,修改,刪除數據。



頂端
本網頁最佳瀏覽模式為:瀏覽器 IE4.0 以上    解析度: 800 x 600
Copyright © 2000-2019 COOLASP All Rights Reserved