ADO.Net DataSet類

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

它用於獲取或設置DataSetISite

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)

它用於使用指定的XmlReaderXmlReadMode將XML模式和數據讀入DataSet

14

Reset()

它用於清除所有表,並從DataSet中刪除所有關係,外部約束和表。

15

WriteXml(XmlWriter, XmlWriteMode)

它用於使用指定的XmlWriterXmlWriteMode編寫DataSet的當前數據和可選的模式。

示例

在這個例子中,將演示如何使用DataSet並將數據顯示到一個gridview中。 創建一個Web窗體並從工具箱中將GridView拖到窗體上。可以在數據類別 中找到GridView

首先創建一個Web項目:AdoNetDataSet,打開Visual Studio創建一個ASP.NET空網站項目,如下所示 -

ADO.Net

向這個項目中添加一個新建項,在項目名稱上點擊右鍵,在彈出的菜單中選擇:添加新項,文件的名稱爲:Default.aspx,如下圖所示 -

ADO.Net

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

ADO.Net

下面是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自動打開瀏覽器,看到結果如下所示 -

ADO.Net