【发布时间】:2020-03-16 06:56:07
【问题描述】:
一种被认为是更好的标准吗?一个比另一个快吗?或者,只是主要是偏好? GetOrdinal 很好,因为您可以自己调用列名,而不必担心计算 SQL 中字段的索引,但我想知道使用其中一个是否有好处。
按索引阅读:
while (reader.Read())
{
Column1 = reader.GetValue(0).ToString().Trim();
Column2 = reader.GetValue(1).ToString().Trim();
}
Reader.GetOrdinal:
while (reader.Read())
{
data.Column1 = reader.GetValue(reader.GetOrdinal("COLUMN1")).ToString();
data.Column2 = reader.GetValue(reader.GetOrdinal("COLUMN2")).ToString();
data.Column3 = reader.GetDateTime(reader.GetOrdinal("COLUMN3"));
}
【问题讨论】:
-
按索引读取更快。
GetOrdinal需要比较的字符串不如按索引访问数组元素那么快。 -
我认为按索引阅读更快,但我有一些开发人员坚持认为 GetOrdinal 是“更好的标准”。我目前的工作是关于速度,所以我们的领导希望我们按索引阅读是有道理的。由于某种原因,我的上一份工作坚持使用 GetOrdinal 更好。很高兴知道!
标签: c# sql asp.net ado.net sqldatareader