データベース開発においてExecuteReaderメソッドの使い方
データベース開発では、ExecuteReaderメソッドはSQLクエリーを実行し、クエリー結果を読み取るDataReaderオブジェクトを返します。
ExecuteReaderメソッドを使用する手順は次のとおりです。
- 接続文字列を使って、SqlConnection オブジェクトを作成し、初期化する。接続文字列には、データベース名、サーバー名、その他接続に関連する情報が含まれる。
- データベース上で実行するSQL文やストアードプロシージャを表すSqlCommandオブジェクトを作成し、SQLクエリ文とSqlConnectionオブジェクトで初期化する
- SqlCommandオブジェクトのExecuteReaderメソッドを呼び出すと、SQLクエリが実行され、SqlDataReaderオブジェクトが返されます。SqlDataReaderオブジェクトはクエリ結果の各行を読み出すために使用されます。
- SqlDataReaderオブジェクトのReadメソッドを利用して、取得したクエリ結果を1行ずつ読み込んでいく。Readメソッドは、さらに読み込む行が残っている場合はTrueを返し、残っていない場合はFalseを返す。ReadメソッドがTrueを返した場合、SqlDataReaderオブジェクトのGetXXXメソッド(GetString、GetInt32など)を使用して、行の各列の値を読み込むことができる。
- クエリ結果の読み込みが完了したら、SqlDataReader オブジェクトと SqlConnection オブジェクトを閉じてリソースを解放します。
クエリーを実行し、結果を読み取るExecuteReaderメソッドの使用例を示すコードサンプルを次に示します。
string connectionString = "连接字符串";
string query = "SELECT 列1, 列2 FROM 表名";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(query, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
string column1Value = reader.GetString(0);
int column2Value = reader.GetInt32(1);
// 处理每一行的数据
}
}
}
}
上の例の接続文字列は、有効な接続文字列に置き換える必要があり、query変数はSQLクエリー文に置き換える必要があります。whileループでは、readerのGetXXXメソッドを呼び出すことで、各行の列の値を取得します。なお、GetXXXメソッドのパラメータは列のインデックスであり、0から数えます。