DataRow có thuộc tính Bảng, tham chiếu đến DataTable mà nó xuất phát từ đó. DataTable có thuộc tính Cột, là DataColumnCollection.
Việc liệt kê danh sách này sẽ cho phép bạn xác định xem bảng có chứa cột bạn muốn hay không. Lưu ý rằng tất cả các hàng trên bảng đều có các cột giống hệt nhau.
ví dụ:
bool containsColumn = row.Table.Columns.Any(column => column.ColumnName == "EmploymentID");
Đó là giá trị chỉ ra rằng bạn sẽ có khả năng cần phải kiểm tra cho sự bình đẳng để DBNull, trừ khi bạn là chắc chắn 100% các EmploymentID không bao giờ có thể được trả lại null.
Ngoài ra, nếu cột EmploymentID được gõ là một số nguyên, sau đó bạn có thể tránh được bất cứ nhu cầu cho loại hình chuyển đổi, bằng cách sử dụng một dàn diễn viên trực tiếp:
EmploymentID = (int)row["EmploymentID"];
hoặc cách khác, sử dụng DataRowExtensions cho một cách tiếp cận gọn gàng hơn nhiều, mà tất cả các kiểm tra null cho bạn:
EmploymentID = row.Field<int?>("EmploymentID");
Nếu EmploymentID không phải là một int nullable, sau đó bạn có thể kết thành một khối giá trị như:
EmploymentID = row.Field<int?>("EmploymentID") ?? 0;
Nguồn
2012-03-13 03:18:11
Thank you very much Will. Bạn đang trả lời là rất tốt. –
@Hughes Không có phương thức mở rộng Bất kỳ cho DataColumnCollection. Ít nhất không phải trong .NET 4.0. – Irshad
@Irshad - [Bất kỳ trong không gian tên System.Linq] (https: //msdn.microsoft.com/en-us/library/vstudio/bb534972 \ (v = vs.100 \) .aspx), chữ ký '' ' public static bool Bất kỳ (nguồn IEnumerable này, Func predicate) '' ' –