- Về thái độ:
l. trộn dữ liệu bên ngoài vào DataSet
Dữ liệu bên ngoài có thể là các dòng (mảng dòng), DataTable hoặc một DataSet khác.
Nguyên tắc của phương thức này như sau: khi được gọi, cấu trúc của nguồn và đích được so sánh với nhau. Nếu cấu trúc dữ liệu bên ngoài khác với cấu trúc của
147 DataSet do thêm cột, các cột mới sẽ được thêm vào DataSet (tùy cú pháp) cùng với dữ liệu. Trên dữ liệu bên ngoài, những dòng có tình trạng Unchanged, Modified và Deleted phải có cột khóa chính như những dòng đã có trên DataSet. Những dòng có tình trạng Added (thêm mới) phải thỏa ràng buộc về khóa chính của DataSet.
Trong quá trình trộn lẫn dữ liệu, các ràng buộc được bỏ qua: thuộc tính EnforceConstraints có giá trị False. Cuối quá trình, nếu ràng buộc nào không thể chuyển lại True sẽ làm phát sinh một Exception. Vì vậy, chúng ta cần giải quyết các vi phạm ràng buộc trước khi gán EnforceConstraints với giá trị True.
Phương thức này có rất nhiều cách sử dụng. 1. <DataSet>.Merge(<mảng dòng>) Trộn một mảng các dòng vào DataSet.
2. <DataSet>.Merge(<DataTable>) Trộn một DataTable bên ngoài vào DataSet. 3. <DataSet>.Merge(<DataSet>) Trộn một Dataset bên ngoài vào DataSet.
4. <DataSet>.Merge(<DataSet>,<giữ thay đổi>) Trộn một Dataset bên ngoài và cấu trúc của nó vào DataSet.
<giữ thay đổi>: nếu là True, các thay đổi từ bên ngoài được giữ nguyên trên DataSet, là False không thay đổi theo bên ngoài.
5. <DataSet>.Merge(<DataSet>,<giữ thay đổi>, _ <xử lý khi cấu trúc khác nhau>)
Trộn một Dataset bên ngoài và cấu trúc của nó vào DataSet. <xử lý khi cấu trúc khác nhau>: tùy theo giá trị truyền vào.
6. <DataSet>.Merge(<mảng dòng>,<giữ thay đổi>,_ <xử lý khi cấu trúc khác nhau>)
Trộn một mảng dòng bên ngoài và cấu trúc của nó vào DataSet.
7. <DataSet>.Merge(<DataTable>,<giữ thay đổi>, _ <xử lý khi cấu trúc khác nhau>)
Trộn một DataTable bên ngoài và cấu trúc của nó vào DataSet. Các giá trị của <xử lý khi cấu trúc khác nhau> được mô tả như sau:
Tên Mô tả
Add Nếu khác nhau, thêm các cột mới vào cấu trúc của DataSet.
Error Nếu khác nhau phát sinh lỗi.
148