Angenommen, ich rufe eine Abfrage "SELECT name, city, country FROM People" auf. Sobald ich meinen SqlDataReader ausführe, kommen die Spalten in der gleichen Reihenfolge wie in meiner Sql-Abfrage?
Mit anderen Worten: Kann ich mich darauf verlassen, dass der folgende Code immer korrekt funktioniert?
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();
}
Auch wie viel Leistung verliere ich, wenn ich Spaltennamen anstelle von Ordnungszahlen (reader["name"]) verwenden?
Gibt es irgendwelche offiziellen Microsoft-Dokumente, die das Verhalten der Spaltenanordnung in SqlDataReader beschreiben?