次の方法で共有


SqlDataReader.Close メソッド

定義

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 ()

実装

次の例では、 、 SqlConnectionSqlCommandおよび を作成します 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 メソッドを含めないでください。 詳しくは、「ガベージ コレクション」をご覧ください。

適用対象

こちらもご覧ください