SqlDataReader.Close 메서드


SqlDataReader 개체를 닫습니다.Closes the SqlDataReader object.

 virtual void Close();
public void Close ();
abstract member Close : unit -> unit
override this.Close : unit -> unit
Public Sub Close ()



다음 예에서는 SqlConnection, SqlCommandSqlDataReader를 만듭니다.The following example creates a SqlConnection, a SqlCommand, and a SqlDataReader. 이 예제에서는 데이터를 읽고 콘솔 창에 기록 합니다.The example reads through the data, writing it out to the console window. 그런 다음 코드는 SqlDataReader를 닫습니다.The code then closes the SqlDataReader. SqlConnection using 코드 블록의 끝에서 자동으로 닫힙니다.The SqlConnection is closed automatically at the end of the using code block.

private static void ReadOrderData(string connectionString)
    string queryString =
        "SELECT OrderID, CustomerID FROM dbo.Orders;";

    using (SqlConnection connection =
               new SqlConnection(connectionString))

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

        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.
    End Using
End Sub


SqlDataReader를 사용 하 여 다른 용도로 연결 된 SqlConnection를 사용 하는 경우 Close 메서드를 명시적으로 호출 해야 합니다.You must explicitly call the Close method when you are through using the SqlDataReader to use the associated SqlConnection for any other purpose.

Close 메서드는 출력 매개 변수, 반환 값 및 RecordsAffected에 대 한 값을 입력 하 여 크고 복잡 한 쿼리를 처리 하는 데 사용 된 SqlDataReader를 닫는 데 걸리는 시간을 늘립니다.The Close method fills in the values for output parameters, return values and RecordsAffected, increasing the time that it takes to close a SqlDataReader that was used to process a large or complex query. 반환 값 및 쿼리의 영향을 받는 레코드 수가 중요 하지 않은 경우 Close 메서드를 호출 하기 전에 연결 된 SqlCommand 개체의 Cancel 메서드를 호출 하 여 SqlDataReader를 닫는 데 걸리는 시간을 줄일 수 있습니다.When the return values and the number of records affected by a query are not significant, the time that it takes to close the SqlDataReader can be reduced by calling the Cancel method of the associated SqlCommand object before calling the Close method.


클래스의 Finalize 메서드에서 연결, DataReader 또는 기타 관리 되는 개체에 대해 Close 또는 Dispose를 호출 하지 마세요.Do not call Close or Dispose on a Connection, a DataReader, or any other managed object in the Finalize method of your class. 종료자에서 클래스가 직접 소유 하는 관리 되지 않는 리소스만 해제 해야 합니다.In a finalizer, you should only release unmanaged resources that your class owns directly. 클래스에 관리되지 않는 리소스가 없는 경우 클래스 정의에 Finalize 메서드를 포함하지 마세요.If your class does not own any unmanaged resources, do not include a Finalize method in your class definition. 자세한 내용은 가비지 수집을 참조 하세요.For more information, see Garbage Collection.

적용 대상

추가 정보