次の方法で共有


SqlDataReader.Close メソッド

SqlDataReader オブジェクトを閉じます。

Public Overridable Sub Close() Implements IDataReader.Close
[C#]
public virtual void Close();
[C++]
public: virtual void Close();
[JScript]
public function Close();

実装

IDataReader.Close

解説

SqlDataReader を使用した後で、 SqlConnection を他の操作に使用するには、 Close メソッドを明示的に呼び出す必要があります。

Close メソッドは、出力パラメータの値、戻り値、および RecordsAffected にデータを格納します。そのため、大きくて複雑なクエリの処理に SqlDataReader を使用すると、閉じるのに時間がかかります。戻り値や、クエリの影響を受けたレコード数が必要ない場合は、関連付けられた SqlCommand オブジェクトの Cancel メソッドを呼び出してから Close メソッドを呼び出すと、 SqlDataReader を閉じる時間を短縮できます。

注意   クラスの Finalize メソッドで、Connection、DataReader、またはその他のマネージ オブジェクトの Close または Dispose を呼び出すことは避けてください。ファイナライザでは、クラスが直接所有しているアンマネージ リソースだけを解放してください。アンマネージ リソースを一切所有しないクラスの場合は、クラス定義の中に Finalize メソッドを含めないでください。詳細については、「 ガベージ コレクションのプログラミング 」を参照してください。

使用例

[Visual Basic, C#, C++] SqlConnectionSqlCommand 、および SqlDataReader を作成する例を次に示します。この例では、データを読み取り、コンソールに出力します。最後に、この例では SqlDataReader を閉じてから、 SqlConnection を閉じます。

 
Public Sub ReadMyData(myConnString As String)
    Dim mySelectQuery As String = "SELECT OrderID, CustomerID FROM Orders"
    Dim myConnection As New SqlConnection(myConnString)
    Dim myCommand As New SqlCommand(mySelectQuery, myConnection)
    myConnection.Open()
    Dim myReader As SqlDataReader
    myReader = myCommand.ExecuteReader()
    While myReader.Read()
        Console.WriteLine(myReader.GetInt32(0) & ", " & myReader.GetString(1))
    End While
    ' always call Close when done reading.
    myReader.Close()
    ' Close the connection when done with it.
    myConnection.Close()
End Sub 'ReadMyData

[C#] 
public void ReadMyData(string myConnString) {
    string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";
    SqlConnection myConnection = new SqlConnection(myConnString);
    SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection);
    myConnection.Open();
    SqlDataReader myReader;
    myReader = myCommand.ExecuteReader();
    while (myReader.Read()) 
 {
       Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
    }
    // always call Close when done reading.
    myReader.Close();
    // Close the connection when done with it.
    myConnection.Close();
 }

[C++] 
public:
void ReadMyData(String* myConnString) {
    String* mySelectQuery = S"SELECT OrderID, CustomerID FROM Orders";
    SqlConnection* myConnection = new SqlConnection(myConnString);
    SqlCommand* myCommand = new SqlCommand(mySelectQuery,myConnection);
    myConnection->Open();
    SqlDataReader* myReader;
    myReader = myCommand->ExecuteReader();
    while (myReader->Read()) 
    {
       Console::WriteLine(S"{0}, {1}", __box(myReader->GetInt32(0)), myReader->GetString(1));
    }
    // always call Close when done reading.
    myReader->Close();
    // Close the connection when done with it.
    myConnection->Close();
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

SqlDataReader クラス | SqlDataReader メンバ | System.Data.SqlClient 名前空間