Dataset Là Gì

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

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

Cấu trúc của DataSet cùng DataTable

Namespace: System.Data

Một DataSet tựa như như một tập tin database vật lý hoàn hảo nhưng được lưu lại trong cỗ nhớ. DataSet bao hàm các DataTable, DataTable bao gồm các DataColumn, DataRow, những constraint được minh họa như hình dưới:


*

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

DataSet:

TypeNameDescriptionDataTableCollectionTablesGets the collection of tables contained in the System.Data.DataSetDataRelationCollectionRelationsGet the collection of relations that link tables & allow navigation from parent tables to lớn 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: Cách Sửa Ấm Siêu Tốc Không Vào Điện Siêu Tốc Đơn Giản Ngay Tại Nhà

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

Để tiến hành các ví dụ với DataSet cùng DataTable, tôi đã sẵn sàng một database đơn giản và dễ dàng trên SQL Server bao gồm hai bảng. Để tiến hành được cách này, yêu thương cầu các bạn phải tất 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 link 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ừ bỏ database

Phương thức sau sẽ liên kết đến database SQL Server, kế tiếp nạp hai table User và Group vào DataSet. Khi có tác dụng ví dụ, các bạn hãy sửa chuỗi kết nối theo máy chúng ta và tạo những 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 thương hiệu bảng mà chúng ta đặt vào CommandText để tại vị tên mang lại DataTable, tuy nhiên để chắc chắn là tên bảng đúng trong các trường hợp tất cả sửa đổi, tôi dùng overload Fill(DataSet,string) để tại vị tên lại cho những table.


Thay bởi vì Fill() vào DataSet, bạn cũng có thể dùng Fill(DataTable) để tạo ra một DataTable mới, kế tiếp 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 rất có thể trùng với trường đoản cú khóa mà lại SQL thực hiện (ví dụ: User), mặc dù điều này ít khi xảy ra nhưng chúng ta cũng có thể đề chống trước bẳng cách thực hiện quy tắc đặt tên như thực hiện tiền tố, viết tên theo danh tự số nhiều,

Ngoài phương pháp nạp dữ liệu từ datatable, chúng ta có thể tạo tài liệu động đến DataTable trải qua các collection Columns cùng Rows. Phần sau sẽ trình làng về cách tiến hành này.

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

Kiểu dữ liệu DataColumn chứa đầy đủ các property cần thiết để bạn tạo ra một quy mô dữ liệu hoàn hảo cho DataTable. Ta hoàn toàn có thể tạo một column dùng làm ID cùng với chỉ số tự động hóa tăng ban đầu từ 1, không được cho phép null cùng là tốt 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 tất cả hai thông tin là tên với kiểu dữ liệu. Khi đã bao gồm một DataTable rỗng, các bước thêm những DataColumn vào rất solo giản. Lấy một ví dụ sau tạo ra một DataTable với tên Persons với ba column là ID, Name và Birthday cùng rất kiểu dữ liệu tương xứ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à trống rỗng vì chưa có dữ liệu (chỉ có quy mô dữ liệu). Để chế tác một DataRow ta phải gọi thủ tục DataTable.NewRow(). Cách làm này trả về một DataRow với các ô cất dữ liệu tương ứng với những cột của DataTable. Quá trình thêm dữ liệu cũng rất đơn giản, phụ thuộc 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 bé 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: