- Về thái độ:
a. Đổ dữ liệu vào Dataset hoặc dataTable
5.5.3 Sử dụng DataAdapter lấy cấu trúc từ nguồn dữ liệu
Tạo cấu trúc dữ liệu cho DataSet có sẵn, phương thức trả về một tập hợp các cấu trúc bảng được thêm vào DataSet
FillSchema(tên_dataset, kiểu_cấu_trúc)
Trong đó kiểu_cấu_trúc qui định việc ánh xạ tên có được chấp nhận hay không. Các giá trị của kiểu cấu trúc được qui định như sau:
Giá trị Mô tả
SchemaType.Mapped Sử dụng các TableMappings cho các cấu trúc đưa vào DataSet nếu trùng hợp. Tên bảng đặt theo tên tương ứng trong cơ sở dữ liệu.
SchemaType.Source Không sử dụng các TableMappings. DataAdapter sẽ lấy cấu trúc về cho các bảng trong DataSet và đặt tên các bảng theo cách mặc nhiên Table, Table1
Thông thường SchemaType.Mapped được sử dụng
Tạo cấu trúc dữ liệu cho DataTable có sẵn, phương thức trả về DataTable FillSchema(tên_datatable, kiểu_cấu_trúc)
Tạo cấu trúc dữ liệu cho bảng <tên Datatable> trong DataSet; nếu chưa có, bảng sẽ được tạo ra
FillSchema(tên_dataset, kiểu_cấu_trúc, chuỗi_tên_bảng) Nếu bảng đã có cấu trúc sẵn, các cột có tên khác với cột có sẵn trên bảng sẽ được thêm vào. Tùy theo cấu trúc trên nguồn dữ liệu, những thuộc tính sau sẽ được đưa vào cấu trúc của cột:
AllowDBNull: cho phép nhận giá trị Null hay không AutoIncrement: tự động tăng
MaxLength: kích thước tối đa của cột (tính theo Byte) ReadOnly: chỉ cho phép đọc
Unique: cột có trị duy nhất
Phương thức FillSchema cũng định luôn khóa chính và các ràng buộc cho bảng theo nguyên tắc sau:
Các cột khóa chính trong lệnh truy vấn của SelectCommand được dùng làm các cột khóa chính cho bảng.
Nếu không có cột khóa chính trong lệnh truy vấn, nhưng có những cột có trị duy nhất và nếu những cột này không cho phép nhận giá trị Null, thì được dùng làm khóa chính. Ngược lại, mỗi một cột tuy có trị duy nhất nhưng chấp nhập giá trị Null,
142 thì một ràng buộc duy nhất được thêm vào tập hợp Constraints của bảng nhưng không có khóa chính.
Chỉ có các ràng buộc khóa chính và khóa duy nhất mới thêm vào tập hợp Constraints, các loại ràng buộc khác không được đưa vào.
Những đặc điểm của phương thức FillSchema cũng giống như của Fill