SqlDataReader.Close メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
SqlDataReader オブジェクトを閉じます。
public:
override void Close();
public override void Close();
override this.Close : unit -> unit
Public Overrides Sub Close ()
実装
例
次の例では、 、 SqlConnection、 SqlCommandおよび を作成します SqlDataReader。 この例では、データを読み取り、コンソール ウィンドウに書き出します。 その後、コードは を SqlDataReader閉じます。 は SqlConnection 、コード ブロックの末尾で自動的に using 閉じられます。
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
ReadOrderData(str);
}
private static void ReadOrderData(string connectionString)
{
string queryString =
"SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command =
new SqlCommand(queryString, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
// Call Read before accessing data.
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",
reader[0], reader[1]));
}
// Call Close when done reading.
reader.Close();
}
}
}
}
}
注釈
他の目的に関連付けられている SqlConnection をClose使用する前に、 SqlDataReader を使用しているときにメソッドが呼び出されていることを確認する必要があります。 メソッドは Close 、直接呼び出すか、 メソッドを Dispose 介して直接、または using ステートメント ブロックのコンテキストで破棄できます。
メソッドはClose、保留中の結果を使用して、出力パラメーターの値を設定し、値を返しますRecordsAffectedSqlDataReader。 これは、使用するデータの量によっては長い操作になる場合があります。 出力値、戻り値、および RecordsAffected がアプリケーションにとって重要でない場合は、メソッドが呼び出される前Closeに、関連付けられているSqlCommandオブジェクトの メソッドをCancel呼び出すことによって、閉じる時間が短縮される可能性があります。
注意事項
Connection、DataReader、またはクラスの メソッド内の他のマネージド オブジェクトでは、 または をFinalize呼び出CloseDisposeさないでください。 ファイナライザーでは、クラスが直接所有するアンマネージ リソースのみを解放する必要があります。 クラスがアンマネージ リソースを所有していない場合は、クラス定義に Finalize メソッドを含めないでください。 詳しくは、「ガベージ コレクション」をご覧ください。