Collapse All Expand All Code: All Code: Multiple Code: C# Code: Visual Basic Code: Visual C++ Members: Show All Members: Filtered Members: Filtered Members: Filtered

C#
Visual Basic
Visual C++
Include Protected Members
Include Inherited Members

Berkeley DB .NET API Documentation
BaseDatabase..::.Close Method
BaseDatabase Class See Also Send Feedback

Although closing a database also closes any open cursors, it is recommended that applications explicitly close all their Cursor objects before closing the database. The reason why is that when the cursor is explicitly closed, the memory allocated for it is reclaimed; however, this does not happen if you close a database while cursors are still opened.

The same rule, for the same reasons, holds true for Transaction objects. Simply make sure you resolve all your transaction objects before closing your database handle.

Because key/data pairs are cached in-memory, applications should make a point to always either close database handles or sync their data to disk (using Sync()()() before exiting, to ensure that any data cached in main memory is reflected in the underlying file system.

When called on a secondary index's primary database, the primary should be closed only after all secondary indices referencing it have been closed.

When multiple threads use the object concurrently, only a single thread may call the Close method.

The object may not be accessed again after Close is called, regardless of its outcome.

# Overload List

| Name | Description
--- | --- | ---
| Close()()() | Flush any cached database information to disk, close any open Cursor()()() objects, free any allocated resources, and close any underlying files.
| Close(Boolean) | Optionally flush any cached database information to disk, close any open Cursor()()() objects, free any allocated resources, and close any underlying files.

# See Also

BaseDatabase Class
BaseDatabase Members
BerkeleyDB Namespace