Thiết lập cho các trường tự động tăng giá trị 68

Một phần của tài liệu Tìm hiểu về công nghệ NET compact framework và lập trình ứng dụng trên pocket PC (Trang 68 - 69)

Khi một hàng mới được thêm vào cho một DataTable, thì hàng rỗng được thêm vào bằng cách gọi phương thức DataTable.NewRow. DataTable biết mơ hình của hàng mà nó phải tạo ra và khởi tạo hàng mới để phù hợp với mơ hình. Điều đó có nghĩa là hàng mới lưu trữ phải có DataColumn cùng với những kiểu dữ liệu chính sác sằn sàng cho bạn để đặt dữ liệu.

Thuộc tính DataColumn.AutoIncrement có thể được thiết đặt chỉ cho DataTable để thiết đặt giá trị cho một DataColumn tự đông tăng giá trị khi một hàng mới được tạo. Đây là một đặc trưng có ích nhất của DataColumns, nó rất hữu dụng khi dùng làm trường khoá trong một bảng, từ đó khố có thể tự động được tạo cho bạn.

Có ba thuộc tính quan trọng trong DataColumn liên quan đến các trường tự động tăng giá trị:

- DataColumn.AutoIncrement thiết đặt là true sẽ cho DataColumn tự động tăng. - DataColumn.AutoIncrementSeed Giá trị bắt đầu cho tự động tăng.

- DataColumn.AutoIncrementStep số lượng các bước tăng cho mỗi giá trị mới. Nếu DataColumn là một cột tính tốn, thì cố gắng thiết đặt nó như một cột tự động tăng và sẽ gây ra một ngoại lệ ArgumentException.

Nếu kiểu dữ liệu của DataColumn không phải là kiểu Int16, Int32, hoặc Int64,thì nó buộc phải chuyển về một kiểu Int32. Điều này có thể là nguyên nhân mất độ chính xác nếu kiểu dữ liệu là kiểu số thực - con trỏ (floating-point). Nếu DataColumn có kiểu dữ liệu là string thì thiết đặt nó ở chế độ tự động tăng sẽ ép kiểu dữ liệu của DataColumn thành kiểu integer.

Ví dụ tạo trường tự động tăng giá trị

Đoạn code mẫu được lấy ra từ ứng dụng PhoneBook mẫu. Ở trong đoạn code này ta thiết đặt thuộc tính AutoIncrement của ContactID DataColumn trong bảng có tên là l_newTable. Giá trị bắt đầu là 10, và giá trị bước nhảy là 5.

C#

l_newTable.Columns["ContactID"].AutoIncrement = true; l_newTable.Columns["ContactID"].AutoIncrementSeed = 10; l_newTable.Columns["ContactID"].AutoIncrementStep = 5;

Một phần của tài liệu Tìm hiểu về công nghệ NET compact framework và lập trình ứng dụng trên pocket PC (Trang 68 - 69)