由於 DataTable.Rows.Find 只提供對 PrimaryKey 的查詢能力,
如果不是 PrimaryKey 的話,
似乎只能用 DataTable.Select ,
說明文件裡面說"取得符合按照主索引鍵順序 (如果沒有,則使用加法順序) 的篩選準則的所有 DataRow 物件之陣列。",
看來如果查詢的欄位不是 PrimaryKey 的話就會用 Table scan 的方式去查資料;
上網找到一份資料 【使用 ADO.NET 的最佳經驗分享-更多有用秘訣】 ,
裡面的"在資料中找尋資料"這一段裡面提到,
查詢的欄位是主索引鍵的話就用 DataTable.Rows.Find 不要用 DataTable.Select ,
非主索引鍵的話就建立 DataView 來增加多重查詢的效能;
然後我記得再查詢相關說明的時候,
微軟又建議我們用 Linq to DataSet 的方式來查詢!!!
也許年代不同有不同的方式可以得到更好的效能吧?
所以我決定把我所想得到的查詢方式通通拿來測試一下效能,
所以才會有今天這一篇文章。
我所想到的方法有下列幾項: