我见过一些人使用SqlDataReader从数据库中获取数据
reader["Test"].ToString();
...和其他人
reader.GetString(0);
...有什么不同吗?或者可以归结为个人喜好?
发布于 2015-04-09 13:46:09
很明显:
GetValue而不是GetString和其他类型化的方法。对我来说,这种访问数据的方式只有在查询'select x,sum(y) from sometable`‘--即第二列没有名称,所以不能按名称访问它时,才是真正有用的。考虑到性能-按名称访问稍微占用了更多的时间,因为内部访问索引是
public override object this[int i]
{
get
{
return this.GetValue(i);
}
}并且按名称访问是
public override object this[string name]
{
get
{
return this.GetValue(this.GetOrdinal(name));
}
}因此,按名称访问首先调用GetOrdinal。
但在实际的应用程序中,这种差异是绝对可以忽略的。
发布于 2015-04-09 13:46:31
使用字段名而不是索引总是有意义的,因为如果SQL语句中字段的顺序发生变化,您可能会遇到一些麻烦。
https://stackoverflow.com/questions/29540172
复制相似问题