SqlCeEngine.Compact Method

Reclaims wasted space in the SQL Server Mobile database by creating a new database file from the existing file. This method is also used to change the collating order, encryption, or password settings of the database.

Namespace: System.Data.SqlServerCe
Assembly: System.Data.SqlServerCe (in system.data.sqlserverce.dll)

public void Compact (
	string connectionString
public void Compact (
	String connectionString
public function Compact (
	connectionString : String



The connection string to the destination database.

The connection string specifies a connection to the destination database that will be created by this method.

An exception is thrown if the specified database already exists or if another file with the same name already exists. .

If you pass an empty string for the connection string, the new database file overwrites the old database file and maintains the same name.

The following example demonstrates how to compact a SQL Server Mobile database.

SqlCeEngine engine = new SqlCeEngine("Data Source = AdventureWorks.sdf");

// Specify null destination connection string for in-place compaction

// Specify connection string for new database options; The following 
// tokens are valid:
//      - Password
//      - LCID
//      - Encrypt
// All other SqlCeConnection.ConnectionString tokens are ignored
engine.Compact("Data Source=; Password =a@3!7f$dQ;");

  • Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see .

Windows CE, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows XP Professional x64 Edition, Windows XP SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Compact Framework

Supported in: 2.0, 1.0