DataSet là một đối tượng người tiêu dùng có thể đựng nhiều DataTable với mối liên hệ giữa chúng (relationship) với kể những ràng buộc (constraint) được lưu trọn vẹn trong bộ lưu trữ để thao tác làm việc offline. Qua bài viết này, bạn cũng có thể hiểu cấu trúc của DataSet, DataTable tương tự như nạp dữ liệu, tạo ra relation, constraint và thao tác dữ liệu trên các đối tượng người tiêu dùng dữ liệu này.

Bạn đang xem: Dataset là gì

Cấu trúc của DataSet và DataTable

Namespace: System.Data

Một DataSet giống như như một tập tin database đồ dùng lý hoàn chỉnh nhưng được giữ trong cỗ nhớ. DataSet bao gồm các DataTable, DataTable bao hàm các DataColumn, DataRow, những constraint được minh họa như hình dưới:


*

Các property của DataSet và DataTable dùng để lưu trữ các collection theo như hình minh họa trên.

DataSet:

TypeNameDescriptionDataTableCollectionTablesGets the collection of tables contained in the System.Data.DataSetDataRelationCollectionRelationsGet the collection of relations that liên kết tables & allow navigation from parent tables to child tables.

DataTable:

TypeNameDescriptionDataColumnCollectionColumnsGets the collection of columns that belong to this table.DataRowCollectionRowsGets the collection of rows that belong lớn this table.ConstraintCollectionConstraintsGets the collection of constraints maintained by this table.

Xem thêm: Tiết Lộ Những Bí Quyết Giữ Chồng Sau Tuổi 30, Bí Quyết Giữ Lửa Cho Phụ Nữ Sau Tuổi 30

Nạp tài liệu vào DataTable và DataSet

Để triển khai các lấy ví dụ như với DataSet và DataTable, tôi đã sẵn sàng một database đơn giản trên SQL Server tất cả hai bảng. Để triển khai được cách này, yêu cầu chúng ta phải có sẵn kiến thức về kết nối database trong ADO.Net. Chúng ta cũng có thể xem tại liên kết sau:


Connecting to lớn a Data Source (ADO.NET)

Dữ liệu minh họa


*

Table Groups:

GroupIDGroupName1Member2Moderator3Super Moderator4Admin

Table Us

UserID

UserName

GroupID

1Adon

1

2Akuma

2

3Balrog

1


4Bison

1

5Blanka

3

6Cammy

1

7ChunLi

1

8Cod

4

9Dan

1

10DeeJay

1

Nạp tài liệu vào DataSet từ database

Phương thức sau sẽ liên kết đến database SQL Server, kế tiếp nạp nhị table User với Group vào DataSet. Khi làm cho ví dụ, bạn hãy sửa chuỗi liên kết theo máy chúng ta và tạo các table tương ứng.

private static DataSet LoadData()var conn = new SqlConnection("Server=YINYANG\SQLEXPRESS;Database=YinYangDB;Trusted_Connection=true");conn.Open();var cmd = "Select * from Users";var dataAdapter = new SqlDataAdapter(cmd, conn);var dataSet = new DataSet();dataAdapter.Fill(dataSet, "User");dataAdapter.SelectCommand.CommandText = "Select * from Groups";dataAdapter.Fill(dataSet, "Group");conn.Close();return dataSet;

Phương thức Fill(DataSet) của DataAdapter auto lấy tên bảng mà bạn đặt vào CommandText để tại vị tên đến DataTable, mặc dù để chắc chắn là tên bảng đúng trong trường hợp gồm sửa đổi, tôi dùng overload Fill(DataSet,string) để đặt tên lại cho các table.


Thay vị Fill() vào DataSet, bạn cũng có thể dùng Fill(DataTable) để tạo thành một DataTable mới, tiếp đến thêm vào DataSet:

var table=new DataTable("Group");dataAdapter.Fill(table);dataSet.Tables.Add(table);

Một số thương hiệu table có thể trùng với tự khóa cơ mà SQL thực hiện (ví dụ: User), tuy vậy điều này ít khi xảy ra nhưng bạn có thể đề phòng trước bẳng cách thực hiện quy tắc đánh tên như thực hiện tiền tố, đánh tên theo danh trường đoản cú số nhiều,

Ngoài giải pháp nạp dữ liệu từ datatable, chúng ta có thể tạo tài liệu động cho DataTable trải qua các collection Columns cùng Rows. Phần sau sẽ ra mắt về cách thực hiện này.

Tạo tài liệu động mang lại DataTable

Kiểu tài liệu DataColumn chứa vừa đủ các property cần thiết để bạn tạo thành một quy mô dữ liệu hoàn hảo cho DataTable. Ta có thể tạo một column cần sử dụng làm ID cùng với chỉ số tự động tăng bắt đầu từ 1, không cho phép null và là độc nhất như sau:

DataColumn col = new DataColumn("ID", typeof(int));col.AllowDBNull = false;col.AutoIncrement = true;col.AutoIncrementSeed = 1;col.Unique = true;

Các DataColumn quan trọng phải có hai tin tức là tên và kiểu dữ liệu. Lúc đã tất cả một DataTable rỗng, quá trình thêm các DataColumn vào rất đối chọi giản. Ví dụ như sau sản xuất một DataTable với tên Persons với bố column là ID, Name cùng Birthday với kiểu dữ liệu tương ứng là int, string với DateTime:

DataTable table = new DataTable("Persons");DataColumn col = new DataColumn("ID", typeof(int));col.AllowDBNull = false;col.AutoIncrement = true;col.AutoIncrementSeed = 1;col.Unique = true;table.Columns.Add(col);table.Columns.Add("Name", typeof(string));table.Columns.Add("Birthday", typeof(DateTime));

DataTable của bọn họ vẫn là rỗng vì chưa xuất hiện dữ liệu (chỉ có mô hình dữ liệu). Để chế tác một DataRow ta nên gọi cách thức DataTable.NewRow(). Cách thức này trả về một DataRow với những ô chứa dữ liệu khớp ứng với những cột của DataTable. Các bước thêm dữ liệu cũng rất đơn giản, dựa vào hai overload của DataRowCollection.Add() như các bạn thấy bên dưới đây:

DataRow newRow = table.NewRow();newRow<"ID"> = 1; // remove this linenewRow<"Name"> = "Boo";newRow<"Birthday"> = new DateTime(1990,3,4);table.Rows.Add(newRow);table.Rows.Add(null, "Bee", new DateTime(1989, 5, 3));

Một đoạn code nhỏ dại để in ra kết quả:

foreach (DataRow row in table.Rows)Console.WriteLine("ID=0, Name=1, Birthday=2",row<"ID">, row<"Name">, row<"Birthday">);

Output:

Bài viết liên quan