SqlDataReader.Close メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
SqlDataReader オブジェクトを閉じます。
public:
virtual void Close();
public:
override void Close();
public void Close ();
public override void Close ();
abstract member Close : unit -> unit
override this.Close : unit -> unit
override this.Close : unit -> unit
Public Sub Close ()
Public Overrides Sub Close ()
実装
例
次の例では、 、 SqlConnection、 SqlCommand
および を作成します SqlDataReader。 この例では、データを読み取り、コンソール ウィンドウに書き込みます。 その後、コードは を SqlDataReader閉じます。 は SqlConnection 、コード ブロックの末尾で自動的に using
閉じられます。
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();
}
}
}
}
Private Sub ReadOrderData(ByVal connectionString As String)
Dim queryString As String = _
"SELECT OrderID, CustomerID FROM dbo.Orders;"
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
' Call Read before accessing data.
While reader.Read()
Console.WriteLine(String.Format("{0}, {1}", _
reader(0), reader(1)))
End While
' Call Close when done reading.
reader.Close()
End Using
End Sub
注釈
を使用して、関連付けられている SqlConnection を他のClose目的で使用SqlDataReaderする場合は、 メソッドを明示的に呼び出す必要があります。
メソッドは Close
、出力パラメーター、戻り値、および RecordsAffected
の値を入力し、大規模または複雑なクエリの処理に使用された を SqlDataReader
閉じるのにかかる時間を長くします。 戻り値とクエリの影響を受けるレコードの数が重要でない場合は、 メソッドを呼び出す前に関連付けられたSqlCommandオブジェクトのメソッドをCancel呼び出すことによって、 を閉じるSqlDataReader
のにかかる時間をClose
短縮できます。
注意事項
Connection、DataReader、またはDispose
クラスの メソッド内の他のマネージド オブジェクトを呼び出したり、その他のマネージド オブジェクトをFinalize
呼び出Close
したりしないでください。 ファイナライザーでは、クラスが直接所有するアンマネージド リソースのみを解放する必要があります。 クラスがアンマネージ リソースを所有していない場合は、クラス定義に Finalize
メソッドを含めないでください。 詳しくは、「ガベージ コレクション」をご覧ください。
適用対象
こちらもご覧ください
.NET