假设我正在调用一个查询“SELECT name, city, country FROM People”。执行 SqlDataReader 后,列的顺序是否与我的 sql 查询中的顺序相同?
换句话说,我可以相信以下代码将始终正常工作:
SqlConnection connection = new SqlConnection(MyConnectionString);
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = "SELECT [name], [city], [country] WHERE [id] = @id";
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader(System.Data.CommandBehavior.SingleRow);
if (reader.Read())
{
// Read values.
name = reader[0].ToString();
city = reader[1].ToString();
country = reader[2].ToString();
}
}
catch (Exception)
{
throw;
}
finally
{
connection.Close();
}
另外,如果我使用列名而不是序数 (reader["name"]),我会损失多少性能?
是否有任何官方的微软文档描述了 SqlDataReader 中的列排序行为?