「SELECT name、city、country FROM People」というクエリを呼び出すとします。一度SqlDataReaderを実行すると、SQLクエリと同じ順序で列が表示されますか?SqlDataReader列序文
つまり私は次のコードが常に正常に動作することを頼ることができます。
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();
}
私は列の名前の代わりに序数(リーダ[「name」を])を使用する場合
はまた、私はどのくらいのパフォーマンスを失うんか?
SqlDataReaderの列の順序の動作を説明する正式なMicrosoftの文書はありますか?
こんにちはジョシュ。迅速な返信ありがとうございます。この動作は保証されているので、私はそれに頼るべきですか、列名を使うほうがいいですか? PS - GetOrdinalの場合は、私が1行しか取得しないので、私の場合には役に立たないと思います。 – niaher
はい、SqlDataReaderを使用したばかりではなく、バックアップするためのハードコアの証拠はありませんが、動作は保証されています。私は通常、列名が1列か2列でない限り、列名を使用します。なぜなら、読みにくいからです。 – Josh
しかし実際には私はreader [0]、reader [1]などを使用しません。私はreader.GetString(0)、reader.GetString(1)などを使用します。 – Josh