親密接觸ASP.Net(9) 在一個DataSet中儲存多個資料表

來源:互聯網
上載者:User

在一個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)
{
file://聯結語句
string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;";
string strComm1 = "select * from UserList";
string strComm2 = "select * from BookList";

file://打開一個連接
ADOConnection MyConnection = new ADOConnection(MyConnString);

file://打開兩個DataSetCommand
ADODataSetCommand MyComm1 = new ADODataSetCommand(strComm1,MyConnection);
ADODataSetCommand MyComm2 = new ADODataSetCommand(strComm2,MyConnection);

DataSet MyDataSet = new DataSet();

file://把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");

這裡是我們今天的主要內容。前面的幾章曾經說過,在一個DataSet中可以包含多種資料,這裡我們是往這個名為MyDataSet的DataSet中存放了兩個資料庫表,其實只要願意,我們還可以在裡面插入XML資料,而且他們是不會出現衝突的。大家可以放心使用,呵呵。

再下面的代碼,就是把MyDataSet的資料傳送給DataGrid控制項顯示。這裡就不多說了。

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

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



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.