: nhanvien w_NSD
v Chia sẻ dữ liệu giữa các ứng dụn g.
6.5.1 Đối tượng Dataset
Đối tượng Dataset là thành phần chính để hổ trợ việc kết nối ngắt đoạn, là kịch bản phân bổ dữ liệu với ADO.NET. Dataset là bộ nhớ tạm, nó là một bản sao dữ liệu mà cung cấp một mô hình lập trình quan hệ nhất quán không quan tâm đến nguồn dữ liệu. DataSet
bao gồm tập hợp các đối tượng DataTable mả bạn có thể thiết lập mối quan hệ giữa chúng thông qua đối tượng DataRelation. Bạn cũng có thể làm cho dữ liệu trong DataSet được nhất quán bằng cách sử dụng đối tượng UniqueConstraint và ForeignKeyConstraint
Mô hình đối tuợng Dataset Mô hình đối tuợng Dataset Mô hình đối tuợng Dataset
Các thành phần của đối tượng DataSet
§Public properties
Thuộc tính Diễn tả
CaseSensitive Thiết lập hay trả về một giá trị cho biết so sánh chuỗi bên trong các đối tượng DataTable có phân biệt hoa thường hay không
Container(kế thừa từ
MarshalByValueComponent) Trả về container cho thành phần
DataSetName Thiết lập hay trả về tên của DataSet hiện hành DefaultViewManager DesignMode EnforceConstraints ExtendedProperties HasErrors Locale
Namespace Thiết lập hay trả về namespace của DataSet Prefix
Relations Trả về một tập hợp các quan hệ liên kết các bảng(DataTable) trong DataSet và cho phép định hướng từ bảng cha đến bảng con
Sites
Tables Trả về tập hợp bảng(DataTable) chứa bên trong DataSet § Public methods
a. AcceptChanges
Đồng ý tất cả những thay đổi làm trên DataSet trước khi AcceptChanges được gọi. Khi AcceptChanges được gọi, các đối tượng DataRow trong chế độ soạn thảo sẽ kết thúc việc soạn thảo. Trạng thái của DataRow cũng được thay đổi. Những dòng đã thêm vào hay đã cập nhật thì không thay đổi, những dòng đã xoá sẽ bị xoá khỏi DataSet.
Phương thức AcceptChanges thường được gọi trên một DataTable sau khi bạn thực hiện việc update DataSet sử dụng phương thức dbDataAdapter.Update
6.5.3 Đối tượng DataTable
Một Dataset được tạo thành từ một tập hợp các bảng, các quan hệ và các ràng buộc. Trong ADO.NET, các đối tượng DataTable được dùng để trình bày các bảng trong DataSet. Một DataTable trình bày một bảng trong DataTableCllection
Lớp DataTable là một thành phần của namespace System.Data bên trong thư viện của .NET Framework. Bạn có thể tạo và sử dụng một DataTable một cách độc lập hoặc như một thành phần của một Dataset, và các đối tượng DataTable cũng có thể được sử dụng chung với các đối tượng khác của .NET Framework như là DataView. Bạn có thể truy cập tập hợp các bảng trong Dataset thông qua thuộc tính Tables của đối tượng DataSet.
Lược đồ, cấu trúc của Table được trình bày bởi columns và constraints. Bạn định nghĩa lược đồ của DataTable sử dụng các đối tượng DataColumns, ForeignKeyConstraint và UniqueConstraint. Các cột trong table có thể ánh xạ từ các cột trong nguồn dữ liệu, chứa những giá trị tính toán từ những biểu thức, các giá trị tăng tự động hoặc chứa những giá trị khoá chính.
Ngoài những lược đồ, một DataTable cũng phải có những dòng, dùng để chứa và sắp xếp dữ liệu. Lớp DataRow trình bày dữ liệu thật được chứa trong bảng. Bạn sử dụng DataRow và những thuộc tính , phương thức của nó để truy xuất, định giá và thao tác dữ liệu trong một bảng. Như bạn truy cập và thay đổi dữ liệu bên trong một bảng. Đối tượng DataRow giữ lại cả 2 trạng thái hiện tại và trạng thái ban đầu.
Bạn có thể tạo những mối quan hệ cha con giữa những bảng bằng cách sử dụng một hoặc nhiều cột quan hệ trong bảng. Bạn tạo một mối quan hệ giữa các đối tượng DataTable sử dụng một DataRelation. Đối tượng DataRelation sau đó được sử dụng để trả về những dòng quan hệ cha con của một dòng cụ thể.
Class DataTable là đối tượng chính trong thư viện ADO.NET. Các thành phần sử dụng DataTable bao gồm DataSet và DataView.
Khi truy cập các đối tượng DataTable, bạn phải chú ý đến việc phân biệt chữ hoa chữ thường. Ví dụ nếu có một bảng tên là “mydatatable” và một bảng khác tên là “Mydatatable”. Khi tìm tên bảng, bạn phải quan tâm tới việc phân biệt này.
Nếu bạn đang tạo DataTable bằng cách lập trình, đầu tiên bạn phải định nghĩa giản đồ cho nó bằng cách thêm các đối tượng DataColumnm vào collection DataColumnCollection(truy cập thông qua thuộc tính columns)
Để thêm các dòng vào DataTable, trước hết bạn phải sử dụng phương thức NewRow để trả về một đối tượng DataRow mới. Phương thức NewRow trả về một dòng với giản đồ của DataTable, giống như nó đã được định nghĩa bởi DataColumnCollection của Table. Số dòng lớn nhất mà một DataTable có thể lưu trữ là 16,777,216
DataTable còn chứa một tập hợp các đối tượng ràng buộc mà có thể được sử dụng để đảm bảo tính nhất quán dữ liệu
Để xác định khi có những thay đổi được làm trên bảng, chúng ta dùng một trong những sự kiện sau: RowChanged, RowChanging, RowDeleting, RowDeleted
ü Các thành phần của đối tượng DataTable § Public Constructors
§ Public properties
Property Description
CaseSensitive Cho biết liệu chuỗi so sánh bên trong bảng có phân biệt chữ hoa chữ thường hay không
ChildRelation Lấy tập hợp các quan hệ con của DataTable này Columns Trả về tập hợp column có trong bảng này
Constraints Trả về tập hợp các constraint được lưu giữ bởi bảng này Container(kế thừa từ
MarshalByValueComponent) Trả về Container của thành phần
Dataset Trả về Dataset chứa bảng này
DefaulView Trả về cách nhìn tuỳ chọn của bảng DesignMode(kế thừa từ
MarshalbyValueComponent) Lấy giá trị cho biết liệu thành phần đang trong chế độ thiết kế hay không DisplayExpression Trả về hay thiết lập biểu thức mà sẽ trả về một giá trị dùng
để trình bày bảng này trong giao diện người dùng ExtendedProperties Trả về tập hợp thông tin người dùng một cách tuỳ chọn HashErrors Trả về giá trị cho biết có lỗi nào trong bất kỳ dòng trong bất
kỳ bảng của Dataset mà chứa bảng này Locale
MinimumCapacity
Namespace Trả về hay thiết lập các không gian tên XML trình bày dữ liệu lưu trữ trong DataTable
ParentRelations Trả về tập các quan hệ cha cho DataTable này Prefix
PrimaryKey Trả về hay thiết lập một mảng các columns mà chức năng như một primary key cho bảng dữ liệu
Rows Trả về tập hợp các dòng thuộc về bảng này
Site
TableName Trả về hay thiết lập tên của DataTable § Public method
Method Description
AcceptChanges Đảm bảo tất cả những thay đổi đã làm trên bảng này kể từ lần cuối AcceptChanges được gọi
BeginInit Bắt đầu khởi tạo DataTable mà được sử dụng trên một form hoặc được dùng bởi thành phần khác. Khởi tạo xảy ra lúc chạy
BeginLoadData tắt những thông báo, chỉ mục và ràng buộc trong khi load dữ liệu
Clear Xoá dữ liệu của DataTable
Clone Lấy cấu trúc của DataTable bao gồm các lược đồ và các ràng buộc của DataTable
Compute Tính toán những giá trị cho trước trên những dòng hiện tại mà đã được lọc ra
Copy Copy tất cả cấu trúc và dữ liệu của DataTable này Dispose(kế thừa từ
MarshalbyValueComponent) Giải phóng tài nguyên được sử dụng bởi MarshalValueComponent
hoặc được dùng bởi thành phần khác. Việc khởi tạo xảy ra lúc chạy
EndLoadData Bật các thông báo, chỉ mục và các ràng buộc sau khi đã load dữ liệu
Equals(kế thưà từ Object) Xác định liệu 2 thể hiện của đối tượng có bằng nhau không GetChanges Trả về một bảng sao của DataTable chứa tất cả những thay đổi làm trên nó từ khi nó đã được load lần cuối hoặc từ khi AcceptChanges được gọi
GetErrors Trả về một mảng DataRow mà chứa lỗi GetHashCode(kế thừa từ
Object)
GetService(kế thừa từ
MarshalByValueComponent)
GetType(kế thừa từ Object) Trả về kiểu dữ liệu của thể hiện hiện tại ImportRow Sao chép một DataRow vào một DataTable
LoadDataRow Tìm và cập nhật một trường cụ thể, nếu không tìm thấy thì một dòng mới được tạo ra sử dụng giá trị cho trước
NewRow tạo một DataRow mới với cùng lược đồ của bảng
RejectChanges Quay về(huỷ bỏ) tất cả những thay đổi mà đã được làm trên bảng kể từ khi nó được load hoặc lần cuối AcceptChanges được gọi
Reset Thiết lập lại DataTable về trạng thái ban đầu của nó
Select Trả về một mảng đối tượng DataRow
ToString § Public Event
Event Description
ColumnChanged Xảy ra khi sau khi một giá trị của DataColumn được thay đổi trong DataRow
ColumnChanging Xảy ra khi một giá trị của DataColumn đang bị thay đổi trong DataRow
Dispose(kế thừa từ
MarshalByValueComponent)
RowChanged Xảy ra sau khi một DataRow được thay đổi thành công
RowChanging Xảy ra khi một DataRow đang thay đổi
RowDeleted Xảy ra sau khi một dòng trong bảng được xoá RowDeleting Xảy ra trước khi một dòng trong table đang được
xoá
6.5.4 DataColumnCollection
Trình bày một tập hợp các đối tượng DataColumn cho DataTable. DataColumn collection định nghĩa lược đồ cho DataTable, và xác định loại dữ liệu mả DataColumn có thể chứa. Bạn có thể truy cập DataColumnCollection thông qua thuộc tính Columns của đối tượng DataTable.
DataColumnCollection dùng phương thức Add và Remove để chèn và xoá các đối tượng DataColumn. Dùng thuộc tính Count để xác định có bao nhiêu đối tượng DataColumn trong collection. Dùng phương thức Constraint để kiểm tra đối tượng DataColumn chỉ ra có tồn tại trong collection hay không.
Đối tượng DataColumn
Khái niệm
Trình bày lược đồ của một cột trong một DataTable. DataColumn là một khối xây dựng có qui tắc cho việc tạo ra lược đồ cho một DataTable. Bạn xây dựng lược đồ bằng cách thêm vào một hay nhiều đối tượng DataColumn vào DataColumnCollection
Mỗi DataColumn có một thuộc tính DataType mà xác định kiểu dữ liệu được lưu trữ trong DataColumn. Bạn có thể hạn chế kiểu dữ liệu integers, strings hay decimals. Bởi vì dữ liệu chứa bởi DataTable thuờng được trộn lại với nguồn dữ liệu ban đầu của nó
Các thành phần của đối tượng DataColumn
Ø Public Properties
Thuộc tính Diễn tả
AllowDBName Trả về hay thiết lập giá trị cho biết liệu có cho phép một giá trị Null cho cột này hay không
AutoIncrement Trả về hoặc thiết lập giá trị cột này có tự động tăng hay không khi một dòng mới được thêm vào bảng
AutoIncrementSeed Thiết lập hay trả về giá trị đầu tiên cho một cột và thuộc tính AutoIncrement được thiết lập là True
AutoIncrementStep Thiết lập hay trả về giá trị mỗi lần tăng Caption Thiết lập hay trả về tiêu đề của cột
ColumnMapping Thiết lập hay trả về MappingType của cột
ColumnName Thiết lập hay trả về tên của cột trong DataColumnCollection Container(kế thừa từ
MarshalByValueComponent) Trả về Container của thành phần
DataType Thiết lập hay trả về kiểu dữ liệu lưu trữ trong cột
DefaultValue Thiết lập hay trả về giá trị mặc định cho cột khi tạo ra một dòng mới
DesignMode(kế thừa từ MarshalByValueComponent)
Trả về giá trị cho biết liệu thành phần đang trong chế độ thiết kế hay không
Expression Thiết lập hay trả về biểu thức dùng để lọc dữ liệu, tính toán giá trị trên cột hoặc tạo một cột tính toán
ExtendedProperties Trả về collection thông tin người dùng tuỳ chọn
Maxlength Thiết lập hay trả về chiều dài tối đa của dữ liệu của cột Namespace Thiết lập hay trả về không gian tên của DataColumn Ordinal Trả về vị trí của cột trong DataColumnCollection Prefix
ReadOnly Thiết lập hay trả về giá trị cho biết dữ liệu cột là chỉ đọc hay không
Site(kế thừa từ
MarshalByValueComponent) Thiết lập hay trả về site của thành phần
Table Trả về tên của bảng chứa cột
Unique Thiết lập hay trả về giá trị cho biết liệu giá trị mỗi dòng của cột có là duy nhất hay không