DataSet là một đối tượng trong C#, được các lập trình của Microsoft tạo ra để liên kết các table với nhau.
Nếu bạn đã từng nghiên cứu qua relationship trong Access, relationship SQL Server thì khi tạo 1 relationship bạn cần thêm các table vào để hình thành nên 1 relationship trong đó có nhiều table.
Trong lập trình hướng đối tượng C# có đối tượng DataSet giống nhưng relationship của Access hay SQL Server, My SQL , nhưng nó xử lý trên bộ nhớ RAM, giúp tạo ra các liên kết các cột giữa các table với nhau.
Cấu trúc của DataSet và DataTable
// khai báo biến dt kiểu DataTable
DataTable dtLop = new DataTable();
dtLop.TableName = "lop";
// thêm cột vào biến dtLop
dtLop.Columns.Add("MaLop", typeof(int));
dtLop.Columns.Add("TenTop", typeof(string));
// thêm giá trị vào biến DataTable cách 1
DataTable dtHocSinh = new DataTable();
// thêm cột vào biến dtHocSinh
dtHocSinh.Columns.Add("MaHocSinh", typeof(int));
dtHocSinh.Columns.Add("TenHocSinh", typeof(string));
dtHocSinh.Columns.Add("MaLop", typeof(int));
dtHocSinh.TableName = "hocsinh";
// khai báo biến DataSet chèn vào dtLop và dtHocSinh vào
DataSet ds = new DataSet();
ds.Tables.Add(dtHocSinh);
ds.Tables.Add(dtLop);
//Tạo liên kết, bước này giống với tạo liên kết 2 cột trong Access, SQL Server
// DataRelation ("tên", cột khóa chính, cột khóa phụ
DataRelation relation = new DataRelation("Lop_LienKet",
dtLop.Columns["MaLop"] ,dtHocSinh.Columns["MaLop"]);
ds.Relations.Add(relation);
// Thêm dữ liệu vào dtLop
dtLop.Rows.Add(1, "Lop A");
dtLop.Rows.Add(2, "Lop B");
// Thêm dữ liệu vào dtHocSinh
dtHocSinh.Rows.Add(1, "Tran Van A",1);
dtHocSinh.Rows.Add(2, "Tran Van A", 2);
// Chạy qua đoạn cocde trên ta debug và xem lại dtHocSinh lớp 1 có chuyển thành lớp=4 ko
dtLop.Rows[0]["MaLop"] = 4;
Khi lập trình C# lấy dữ liệu từ SQL Server thì tự động tạo ra DataSet
Ví dụ câu SQL truyền vào có 2 dòng select:
Select * From A;Select * From B thì khi đó C# tự tạo ra 1 DataSet chưa 2 table này.