DbConnection.Close Method


When overridden in a derived class, closes the connection to the database.

 abstract void Close();
public abstract void Close ();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()



The Close and CloseAsync methods roll back any pending transactions. They then release the connection to the connection pool, or close the connection if connection pooling is disabled.

An application can call Close or CloseAsync more than one time. No exception is generated.

If the DbConnection goes out of scope, it is not closed. Therefore, you must explicitly close the connection by calling Close or Dispose, which are functionally equivalent. If the connection pooling value Pooling is set to true or yes, this also releases the physical connection.


Do not close or dispose a DbConnection, a DbDataReader, 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