データベース スキーマ情報を取得するために特定のクエリを実行する必要がある単純なアプリケーションがあります。クエリを実行してリーダーを返す簡単なメソッドを作成しました。次のようなものです-
public static DbDataReader ExecuteQuery(DbConnection connection,string sql)
{
DbCommand command = connection.CreateCommand();
command.CommandText = sql;
using(command)
{
return command.ExecuteReader();
}
}
呼び出しコードは接続を閉じ、リーダーと接続を適切に破棄します。
私の質問 - リーダーを反復する前に、(using ブロックを介して行われるように) コマンド インスタンスを破棄することは問題ありませんか? リーダーを閉じた後に OUT パラメータが入力されるとは思いません。ADO.NET API には、これに関する厳密なガイドラインはありますか?