ADO.Net的DataSet
類包含資料的資料表集合。它用於在不與資料源互動的情況下獲取資料,這就是為什麼它也被稱為斷開資料存取方法。這是一個記憶體資料儲存,可以同時容納多個表。可以使用DataRelation
物件來關聯這些表。 DataSet
也可以用來讀寫XML文件中的資料。
ADO.NET提供了一個可用於建立DataSet
物件的DataSet
類。它包含執行資料相關操作的建構函式和方法。
DataSet類的簽名
public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource,
System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable,
System.Xml.Serialization.IXmlSerializable
DataSet類建構函式
編號 | 建構函式 | 描述 |
---|---|---|
1 | DataSet() |
它用於初始化DataSet 類的新範例。 |
2 | DataSet(String) |
它用於使用給定名稱初始化DataSet 類的新範例。 |
3 | DataSet(SerializationInfo, StreamingContext) |
它用於初始化具有給定序列化資訊和上下文的DataSet 類的新範例。 |
4 | DataSet(SerializationInfo, StreamingContext, Boolean) |
它用於初始化DataSet 類的新範例。 |
DataSet類的屬性
編號 | 屬性 | 描述 |
---|---|---|
1 | CaseSensitive |
它用於檢查DataTable 物件是否區分大小寫。 |
2 | DataSetName |
它用於獲取或設定當前DataSet 的名稱。 |
3 | DefaultViewManager |
它用於獲取DataSet 中包含的資料的自定義檢視,以允許過濾和搜尋。 |
4 | HasErrors |
它用於檢查此DataSet 中的任何DataTable 物件中是否有錯誤。 |
5 | IsInitialized |
它用於檢查DataSet 是否被初始化。 |
6 | Locale |
它用於獲取或設定用於比較表中字串的語言環境資訊。 |
7 | Namespace |
它用於獲取或設定DataSet 的名稱空間。 |
8 | Site |
它用於獲取或設定DataSet 的ISite 。 |
9 | Tables |
它用於獲取DataSet 中包含的表的集合。 |
DataSet類的方法
下表中列出了一些常用的DataSet
類中的方法。
編號 | 方法 | 描述 |
---|---|---|
1 | BeginInit() |
它用於在表單上使用的DataSet 的初始化。 |
2 | Clear() |
它用於通過刪除所有表中的所有行來清除任何DataSet 中的資料。 |
3 | Clone() |
它用於複製DataSet 的結構。 |
4 | Copy() |
它用於複製此DataSet 的結構和資料。 |
5 | CreateDataReader(DataTable[]) |
它將為每個DataTable 返回一個帶有一個結果集的DataTableReader 。 |
6 | CreateDataReader() |
它將為每個DataTable 返回一個帶有一個結果集的DataTableReader 。 |
7 | EndInit() |
它結束在表單上使用的DataSet 的初始化。 |
8 | GetXml() |
它返回儲存在DataSet 中的資料的XML表示形式。 |
9 | GetXmlSchema() |
它返回儲存在DataSet 中的資料的XML表示的XML Schema。 |
10 | Load(IDataReader, LoadOption, DataTable[]) |
它用於使用提供的IDataReader 從資料源填充資料集。 |
11 | Merge(DataSet) |
它用於將指定的DataSet 及其模式合併到當前的DataSet 中。 |
12 | Merge(DataTable) |
它用於將指定的DataTable 及其模式合併到當前的DataSet 中。 |
13 | ReadXml(XmlReader, XmlReadMode) |
它用於使用指定的XmlReader 和XmlReadMode 將XML模式和資料讀入DataSet 。 |
14 | Reset() |
它用於清除所有表,並從DataSet 中刪除所有關係,外部約束和表。 |
15 | WriteXml(XmlWriter, XmlWriteMode) |
它用於使用指定的XmlWriter 和XmlWriteMode 編寫DataSet 的當前資料和可選的模式。 |
在這個例子中,將演示如何使用DataSet
並將資料顯示到一個gridview
中。 建立一個Web表單並從工具箱中將GridView
拖到表單上。可以在資料類別 中找到GridView
。
首先建立一個Web專案:AdoNetDataSet,開啟Visual Studio建立一個ASP.NET空網站專案,如下所示 -
向這個專案中新增一個新建項,在專案名稱上點選右鍵,在彈出的選單中選擇:新增新項,檔案的名稱為:Default.aspx,如下圖所示 -
從工具箱中將GridView
拖到表單上,如下圖所示 -
下面是Default.aspx的程式碼實現 -
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.html.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>AdoNet DataSet範例</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" />
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>
</form>
</body>
</html>
下面是Defatult.aspx.cs 程式碼的實現 -
using System;
using System.Data.SqlClient;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection("data source=.; database=student; integrated security=SSPI"))
{
SqlDataAdapter sde = new SqlDataAdapter("Select * from student_info", con);
DataSet ds = new DataSet();
sde.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
}
}
執行上面專案,點選選單:偵錯 -> 開始執行(不偵錯) ,Visual Studio自動開啟瀏覽器,看到結果如下所示 -