从DataRow中检索值时,最好使用列名称还是列索引?
列名更易读,更易于维护:
int price = (int)dr["Price"];
虽然列索引更快(我认为):
int price = (int)dr[3];
如果您决定对数据库进行模糊处理,是否会使用列名中断?
我通常更喜欢可读性和对速度的理解.跟着名字去吧.如果您决定更改数据库列名,则可以(应该)使用可在一个位置更新的字符串常量.
通过列名访问列/行值对于人类阅读和向前兼容性更好(如果将来有人更改顺序或列数).
通过列indeces赋予列/行值更好的性能.
所以,如果你想在一个/两个/ .....行中改变一些值,列名是可以的.但是如果要在数千行中更改某些值,则应使用从列名计算的列索引:
int ndxMyColumn = table.Columns.IndexOf( "MyColumn" ); foreach(DataRow record in table.Rows ) { record[ndxMyColumn] = 15; }