OdbcConnection.Close Method


Closes the connection to the data source.

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



The following example creates an OdbcConnection, opens it, displays some of its properties, and then closes the connection.

private static void CreateOdbcConnection(string connectionString)
    using (OdbcConnection connection = new OdbcConnection(connectionString))
        Console.WriteLine("ServerVersion: " + connection.ServerVersion
            + "\nDatabase: " + connection.Database);

        // The connection is automatically closed at 
        // the end of the Using block.
Private Sub CreateOdbcConnection(ByVal connectionString As String)
    Using connection As New OdbcConnection(connectionString)
        With connection
            Console.WriteLine("ServerVersion: " & .ServerVersion _
               & vbCrLf + "Database: " & .Database)
        End With

        ' The connection is automatically closed
        ' at the end of the Using block.
    End Using 
End Sub


The Close method rolls back any pending transactions. It then releases the connection to the connection pool, or closes the connection if connection pooling is disabled. If Close is called while handling a StateChange event, no additional StateChange events are fired.

An application can call Close more than one time without generating an exception.


When you use the .NET Framework Data Provider for ODBC, you do not have to enable connection pooling because the ODBC Driver Manager manages this automatically. For more information about how to enable and disabling connection pooling, see the Microsoft Open Database Connectivity (ODBC) documentation.


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

Applies to

See also