ADO.Net的DataSet類包含數(shù)據(jù)的數(shù)據(jù)表集合。它用于在不與數(shù)據(jù)源交互的情況下獲取數(shù)據(jù),這就是為什么它也被稱為斷開數(shù)據(jù)訪問方法。這是一個(gè)內(nèi)存數(shù)據(jù)存儲(chǔ),可以同時(shí)容納多個(gè)表??梢允褂?code>DataRelation對(duì)象來關(guān)聯(lián)這些表。 DataSet也可以用來讀寫XML文檔中的數(shù)據(jù)。
ADO.NET提供了一個(gè)可用于創(chuàng)建DataSet對(duì)象的DataSet類。它包含執(zhí)行數(shù)據(jù)相關(guān)操作的構(gòu)造函數(shù)和方法。
DataSet類的簽名
public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource,
System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable,
System.Xml.Serialization.IXmlSerializable
DataSet類構(gòu)造函數(shù)
| 編號(hào) | 構(gòu)造函數(shù) | 描述 |
|---|---|---|
| 1 | DataSet() |
它用于初始化DataSet類的新實(shí)例。 |
| 2 | DataSet(String) |
它用于使用給定名稱初始化DataSet類的新實(shí)例。 |
| 3 | DataSet(SerializationInfo, StreamingContext) |
它用于初始化具有給定序列化信息和上下文的DataSet類的新實(shí)例。 |
| 4 | DataSet(SerializationInfo, StreamingContext, Boolean) |
它用于初始化DataSet類的新實(shí)例。 |
DataSet類的屬性
| 編號(hào) | 屬性 | 描述 |
|---|---|---|
| 1 | CaseSensitive |
它用于檢查DataTable對(duì)象是否區(qū)分大小寫。 |
| 2 | DataSetName |
它用于獲取或設(shè)置當(dāng)前DataSet的名稱。 |
| 3 | DefaultViewManager |
它用于獲取DataSet中包含的數(shù)據(jù)的自定義視圖,以允許過濾和搜索。 |
| 4 | HasErrors |
它用于檢查此DataSet中的任何DataTable對(duì)象中是否有錯(cuò)誤。 |
| 5 | IsInitialized |
它用于檢查DataSet是否被初始化。 |
| 6 | Locale |
它用于獲取或設(shè)置用于比較表中字符串的語言環(huán)境信息。 |
| 7 | Namespace |
它用于獲取或設(shè)置DataSet的名稱空間。 |
| 8 | Site |
它用于獲取或設(shè)置DataSet的ISite。 |
| 9 | Tables |
它用于獲取DataSet中包含的表的集合。 |
DataSet類的方法
下表中列出了一些常用的DataSet類中的方法。
| 編號(hào) | 方法 | 描述 |
|---|---|---|
| 1 | BeginInit() |
它用于在窗體上使用的DataSet的初始化。 |
| 2 | Clear() |
它用于通過刪除所有表中的所有行來清除任何DataSet中的數(shù)據(jù)。 |
| 3 | Clone() |
它用于復(fù)制DataSet的結(jié)構(gòu)。 |
| 4 | Copy() |
它用于復(fù)制此DataSet的結(jié)構(gòu)和數(shù)據(jù)。 |
| 5 | CreateDataReader(DataTable[]) |
它將為每個(gè)DataTable返回一個(gè)帶有一個(gè)結(jié)果集的DataTableReader。 |
| 6 | CreateDataReader() |
它將為每個(gè)DataTable返回一個(gè)帶有一個(gè)結(jié)果集的DataTableReader。 |
| 7 | EndInit() |
它結(jié)束在窗體上使用的DataSet的初始化。 |
| 8 | GetXml() |
它返回存儲(chǔ)在DataSet中的數(shù)據(jù)的XML表示形式。 |
| 9 | GetXmlSchema() |
它返回存儲(chǔ)在DataSet中的數(shù)據(jù)的XML表示的XML Schema。 |
| 10 | Load(IDataReader, LoadOption, DataTable[]) |
它用于使用提供的IDataReader從數(shù)據(jù)源填充數(shù)據(jù)集。 |
| 11 | Merge(DataSet) |
它用于將指定的DataSet及其模式合并到當(dāng)前的DataSet中。 |
| 12 | Merge(DataTable) |
它用于將指定的DataTable及其模式合并到當(dāng)前的DataSet中。 |
| 13 | ReadXml(XmlReader, XmlReadMode) |
它用于使用指定的XmlReader和XmlReadMode將XML模式和數(shù)據(jù)讀入DataSet。 |
| 14 | Reset() |
它用于清除所有表,并從DataSet中刪除所有關(guān)系,外部約束和表。 |
| 15 | WriteXml(XmlWriter, XmlWriteMode) |
它用于使用指定的XmlWriter和XmlWriteMode編寫DataSet的當(dāng)前數(shù)據(jù)和可選的模式。 |
在這個(gè)例子中,將演示如何使用DataSet并將數(shù)據(jù)顯示到一個(gè)gridview中。 創(chuàng)建一個(gè)Web窗體并從工具箱中將GridView拖到窗體上。可以在數(shù)據(jù)類別 中找到GridView。
首先創(chuàng)建一個(gè)Web項(xiàng)目:AdoNetDataSet,打開Visual Studio創(chuàng)建一個(gè)ASP.NET空網(wǎng)站項(xiàng)目,如下所示 -

向這個(gè)項(xiàng)目中添加一個(gè)新建項(xiàng),在項(xiàng)目名稱上點(diǎn)擊右鍵,在彈出的菜單中選擇:添加新項(xiàng),文件的名稱為:Default.aspx,如下圖所示 -

從工具箱中將GridView拖到窗體上,如下圖所示 -

下面是Default.aspx的代碼實(shí)現(xiàn) -
<%@ 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 代碼的實(shí)現(xiàn) -
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();
}
}
}
執(zhí)行上面項(xiàng)目,點(diǎn)擊菜單:調(diào)試 -> 開始執(zhí)行(不調(diào)試) ,Visual Studio自動(dòng)打開瀏覽器,看到結(jié)果如下所示 -
