ADO.NET - ADO.NET DataSet
ADO.NET DataSet
Dataset là một mô hình CSDL quan hệ thu nhỏ đáp ứng nhu cầu của ứng dụng. Dataset chứa các bảng (DataTable) các quanhệ (DataRelation) và các ràng buộc (constraint).
DataSet là một đối tượng chứa dữ liệu trong bộ nhớ và có thể gồm nhiều bảng. DataSet chỉ chứa dữ liệu chứ không tương tác với nguồn dữ liệu. Thay vào đó, SqlDataAdapter sẽ được dùng để quản lý các kết nối với nguồn dữ liệu và cho chúng ta chế độ làm việc disconnected. SqlDataAdapter mở một kết nối chỉ khi cần thiết và đóng nó ngay sau khi tác vụ được hoàn thành. Ví dụ, SqlDataAdapter thực hiện các tác vụ sau, khi đổ dữ liệu vào DataSet:
DataSet
public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource,
System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable,
System.Xml.Serialization.IXmlSerializable
Các phương thức thiết lập
Constructor | Description |
---|---|
DataSet() | Khởi tạo một đối tượng mới. |
DataSet(String) | Khởi tạo một đối tượng mới của lớp Dataset với tên đã cho. |
DataSet(SerializationInfo, StreamingContext) | Khởi tạo một đối tượng mới của lớp Dataset có thông tin và bối cảnh tuần tự hóa đã cho. |
DataSet(SerializationInfo, StreamingContext, Boolean) |
Khởi tạo một đối tượng mới của lớp Dataset |
Các thuộc tính
Thuộc tính | Mô tả |
---|---|
CaseSensitive | Được sử dụng để kiểm tra xem các đối tượng DataTable là chữ hoa hay chữ thường . |
DataSetName | Lấy hoặc đặt tên cho DataSet. |
DefaultViewManager | Được sử dụng để bật chế độ xem tùy chỉnh dữ liệu có trong Bộ dữ liệu để cho phép lọc và tìm kiếm. |
HasErrors | Được sử dụng để kiểm tra xem có lỗi trong bất kỳ đối tượng DataTable nào trong Bộ dữ liệu này không. |
IsInitialized | Kiểm tra xem DataSet có được khởi tạo. |
Locale | Được sử dụng để lấy hoặc gắn thông tin ngôn ngữ được sử dụng để so sánh các chuỗi trong bảng. |
Namespace | Lấy hoặc đặt namespace của DataSet. |
Site | Lấy hoặc đặt một ISite cho DataSet. |
Tables | Lây toàn bộ các bảng chứa trong DataSet. |
Các phương thức của DataSet
Phương thức | Mô tả |
---|---|
BeginInit() | Khởi tạo DataSet được sử dụng trong form. |
Clear() | Xóa dữ liệu tất cả các bảng trong DataSet. |
Clone() | Copy cấu trúc của DataSet. |
Copy() | Copy cấu trúc và dữ liệu trong Dataset. |
CreateDataReader(DataTable[]) | Trả về một DataTableReader, Một tập dữ liệu trong DataTable. |
CreateDataReader() | Trả về một DataTableReader, Một tập dữ liệu trong DataTable. |
EndInit() | Đóng khởi tạo DataSet. |
GetXml() | Trả về XML dữ liệu được lưu trữ trong DataSet. |
GetXmlSchema() | Trả về cấu trúc XML chứa dữ liệu lưu trong DataSet. |
Load(IDataReader, LoadOption, DataTable[]) | Load Bộ dữ liệu với các giá trị từ nguồn dữ liệu bằng IDataReade. |
Merge(DataSet) | Trộn một Bộ dữ liệu được chỉ định và lược đồ của nó vào DataSet hiện tại. |
Merge(DataTable) | Trộn một DataTable được chỉ định và lược đồ DataSet hiện tại. |
ReadXml(XmlReader, XmlReadMode) | Dùng để đọc lược đồ và dữ liệu XML vào DataSet bằng cách sử dụng XmlReader và XmlReadMode. |
Reset() | Xóa tất cả các bảng và mối quan hệ trong DataSet. |
WriteXml(XmlWriter, XmlWriteMode) | Ghi dữ liệu hiện tại và tùy chọn lược đồ cho Bộ dữ liệu bằng cách sử dụng XmlWriter và XmlWriteMode. |
Ví dụ:
Trong ví dụ này, chúng ta dùng DataSet và hiểu thị dữ liệu vào Gridview. Hãy tạo một webform có một Gridview.
// DataSetDemo.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataSetDemo.aspx.cs"
Inherits="DataSetExample.DataSetDemo" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></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>
CodeBehind
// DataSetDemo.aspx.cs
using System;
using System.Data.SqlClient;
using System.Data;
namespace DataSetExample
{
public partial class DataSetDemo : 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", con);
DataSet ds = new DataSet();
sde.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
}
}
}