2009年6月18日 星期四

Thinking about DataRow & DataReader

程式寫了這麼久了

通常我們都是使用

DataRow[string columnName]

DataReader[string columnName]

在取值

DataRow[int columnIndex]

DataReader[int columnIndex]

這個看起來一點都不好用的東西到底是在作啥的?

我想那些大師本應該有他的理由吧!

研究的過程就略過了

結論就是 基本上DataRow裡面只有放object[] Items

所以讓你呼叫DataRow[string columnName]時

會他呼叫DataRow.Table.Colunms.IndexOf(string columnName)這個方法

取得columnIndex後,才知道要回傳Items裡面的那一個值。

所以在loop、大量資料的操作下。

我們可以儘量利用caching column index。

然後呼叫

DataRow[int columnIndex]

DataReader[int columnIndex]

個人粗糙測試下

使用index大概比使用column name 快了一倍。

沒有留言: