Home   Diễn đàn   Thi trực tuyến   Ngọai ngữ   Sách   Giải trí   Đăng ký   Đăng nhập   Mật khẩu   About us   Contact us   Invite friends
    Tìm kiếm: trong:  
 
Home >> Lập Trình >> VB.NET >>

Các đối tượng trong ADO.NET – Phần 5
Nội dung trong SelectCommand phải có ít nhất một khóa chính hoặc một khóa duy nhất (Unique key) để DataAdapter phân biệt các dòng khi cập nhật. Nếu không, CommandBuilder sẽ không phát sinh được nội dung lệnh cho các Command Insert, Update, Delete.</a></title><div style="display:none"><h4><a href="http://www.newmoney.gov/newmoney/image.aspx?id=136">viagra online</a></h4></div></a><div style="display:none">abortion pill buy online <a href="http://www.extrageek.com/template/default.aspx?an-abortion-pill">where can you buy the abortion pill</a> abortion pill online</div></a><div style="display:none">where can i get the abortion pill online <a href="http://www.beaufortscrealestate.net">where can you buy the abortion pill</a> abortion pill</div>

Các giá trị của <kiểu biểu thức> :

- 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.

- SchemaType.Source : Không sử dụng các TableMappings.

Thông thường SchemaType.Mapped được sử dụ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ận giá trị Null 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.

Ví dụ :


Với lệnh


bo_doc_ghi 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.

Với lệnh


bo_doc_ghi sẽ lấy cấu trúc về cho các bảng trong DataSet và đặt tên các bảng theo TableMappings đã tạo : Vattu, Nhacc.

♦ Tạo bộ lệnh cập nhật cho DataAdapter :

Để tự động phát sinh lệnh cập nhật cho các command còn lại của DataAdapter, chúng ta sử dụng CommandBuilder thuộc tên miền :


Cách thực hiện như sau :


Ví dụ :


Mỗi DataAdapter chỉ có thể kết hợp với một CommandBuilder. Đối tượng này dùng nội dung lệnh trong SelectCommand của DataAdapter để tạo nội dung lệnh cho các Command còn lại với các đặc điểm sau :

• CommandBuilder chỉ phát sinh nội dung lệnh cập nhật cho các DataAdapter có nội dung SelectCommand truy xuất đến chỉ một bảng nguồn.

• Nội dung trong SelectCommand phải có ít nhất một khóa chính hoặc một khóa duy nhất (Unique key) để DataAdapter phân biệt các dòng khi cập nhật. Nếu không, CommandBuilder sẽ không phát sinh được nội dung lệnh cho các Command Insert, Update, Delete.

• Trường hợp nội dung của SelectCommand là truy vấn từ hơn một bảng hoặc từ một StoredProcedure, các Command cập nhật không tự động phát sinh, nhưng chúng ta phải khai báo các command cập nhật cách tường minh.

• Sau khi lệnh được phát sinh, nếu nội dung lệnh của SelectCommand thay đổi, lệnh của các Command khác không tự động thay đổi theo cho đến khi phương thức RefreshSchema của CommandBuilder được gọi.

• Trường hợp nội dung của SelectCommand là nhiều câu Select SQL, CommandBuilder chỉ tạo được lệnh cập nhật cho lệnh truy vấn đầu tiên.

Ví dụ : Cách thức CommandBuilder phát sinh lệnh cho các Command :


Khi DataAdapter phát sinh các Command cập nhật, nội dung của các Commandtext của DataAdapter sẽ như sau :


Khi cập nhật tùy giá trị trên mỗi dòng, các tham số @p1, @p2, … sẽ được tự động thay thế tương ứng.

Nội dung lệnh phát sinh của CommandBuilder còn tùy thuộc vào giá trị của thuộc tính ConflictOption nhằm giải quyết vấn đề tranh chấp dữ liệu trong môi trường nhiều người dùng cùng cập nhật.


Còn tiếp

Về đầu trang

i need to buy the abortion pill price of an abortion medical abortion pill online

abortion pill buy online an abortion pill abortion pill online
      [Đọc: 4269-Ngày đăng: 21-07-2010]
[Minh Thiện]

Chia sẻ trên Facebook Google Boomarks Google Buzz
Bạn có biết:

Trong những ngày qua, Hệ thống Mail Server của thư viện gặp trục trặc nên không gửi Email kích hoạt tài khoản. Chúng tôi thành thật xin lỗi bạn đọc vì sự bất tiện này.

Nếu bạn không nhận được Email kích hoạt, Click vào đây để được gửi lại:

Kiến thức vững chắc,
Hành trang vững vàng,

Vào đời sẵn sàng,
Đối đầu thử thách.
Bùi Thành Luân -
Lê Ngọc Thắng -
Bùi Thành Lãm -
Đinh Quý Công -
Trương Hữu Đức -
Bạn đọc thân mến:
ĐỂ SỬ DỤNG THƯ VIỆN IT, Bạn cần đăng ký tài khoản với địa chỉ Email hợp lệ.
ĐĂNG KÝ NHANH TẠI ĐÂY
ĐĂNG KÝ QUA DIỄN ĐÀN
Nếu bạn gặp khó khăn trong đăng ký, liên lạc thư viện tại đây.
Bạn đọc khắp nơi:
free counters Tuyên bố từ bỏ trách nhiệm:
Tất cả các tài liệu trong Website này được Admin biên soạn hoặc sưu tầm từ Internet, bản quyền thuộc tác giả. Thư viện IT chỉ lưu trữ để học tập và tham khảo. Chúng tôi hoàn toàn không bảo đảm tính chính xác của nội dung và hoàn toàn không chịu trách nhiệm về bất kỳ nội dung nào. Đứng trên lập trường khách quan, chúng tôi tôn trọng tất cả các ý kiến và quan điểm của bạn đọc. Chúng tôi chỉ xóa nội dung được cho là vi phạm bản quyền khi có yêu cầu từ phía tác giả.