Xét đoạn code dưới đây:DataView.RowFilter Vs DataTable.Select() vs DataTable.Rows.Find()
Dataview someView = new DataView(sometable)
someView.RowFilter = someFilter;
if(someView.count > 0) { …. }
Khá một số điều mà nói Datatable.Select() là tốt hơn so với sử dụng DataViews, nhưng đây là trước khi VS2008.
Solved: The Mystery of DataView's Poor Performance with Large Recordsets
Array of DataRecord vs. DataView: A Dramatic Difference in Performance
Googling về chủ đề này tôi thấy một số bài viết/chủ đề diễn đàn mà đề cập đến Datatable.Select() chính nó là khá buggy (không chắc chắn về điều này) và hoạt động không tốt trong các tình huống khác nhau.
Trên chủ đề này (ms) Best Practices ADO.NET) đề xuất rằng nếu có khóa chính được xác định trên một phương thức tìm kiếm() hoặc find() có thể được sử dụng trong Datatable.Select().
Bài viết này here (.NET 1.1) tiêu chuẩn tất cả ba phương pháp tiếp cận cộng thêm một vài điều nữa. Nhưng điều này là dành cho phiên bản 1.1 vì vậy không chắc chắn nếu đây là hợp lệ vẫn còn ngay bây giờ. Accroding này DataRowCollection.Find() tốt hơn tất cả các phương pháp tiếp cận và Datatable.Select() tốt hơn DataView.RowFilter.
Vì vậy, tôi khá bối rối về những gì có thể là cách tiếp cận tốt nhất về việc tìm các hàng trong một dữ liệu. Hoặc không có cách nào tốt để làm điều này, nhiều giải pháp tồn tại tùy thuộc vào kịch bản?
Cảm ơn bạn đã nhận phần thưởng! – thmshd