SQL Server Compact connection strings

.NET Compact Framework Data Provider for SQL Server Mobile

How to specify the location of the SDF file

Often times the .SDF database is not running in the current directory so it becomes necessary to programatically set the path to the SDF file. This is an example (.net C#) on how to do this when the SDF file is located in the same directory as the executing application.

Data Source=" + System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\MyData.sdf;Persist Security Info=False;

Specifying the maximum buffer size

The largest amount of memory that can be in use before the server starts flushing changes to disk is by default 640 kB. Override this by using the following connection string.

Data Source=MyData.sdf;Max Buffer Size=1024;Persist Security Info=False;

Encryption enabled

Use this connection string to enable encryption on the database.

Data Source=MyData.sdf;Encrypt Database=True;Password=myPassword;File Mode=shared read;Persist Security Info=False;

The Encrypt Database="True" pair is really not necessary as the presence of the Password-parameter itself turns on encryption for the connection.

Exclusive access

Use this one to disallow other processes from opening or modifying the database while you have it open.

Data Source=MyData.sdf;File Mode=Exclusive;Persist Security Info=False;

Case sensitive database

Upon database creation the default is case insensitive, use this one for a case sensitive database.

Data Source=MyData.sdf;Case Sensitive=True;Persist Security Info=False;

This allows you to have multiple values, wich only deffer in lower / upper case, in a unique column.

This setting is a database creation time option and is ignored when connecting to an existing database.

Microsoft.SQLSERVER.MOBILE.OLEDB.3.0

How to specify the location of the SDF file

Often times the .SDF database is not running in the current directory so it becomes necessary to programatically set the path to the SDF file. This is an example (.net C#) on how to do this when the SDF file is located in the same directory as the executing application.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=" + System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\MyData.sdf;

Specifying the maximum database size

The maximum size of the database is by default 128 MB. Override this by using the following connection string.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;SSCE:Max Database Size=256;

Specifying the maximum buffer size

The largest amount of memory that can be in use before the server starts flushing changes to disk is by default 640 kB. Override this by using the following connection string.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;SSCE:Max Buffer Size=1024;

Encryption enabled

Use this connection string to enable encryption on the database.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;SSCE:Encrypt Database=True;

Specifying the maximum temp file size

The maximum size of the temporary database file is by default 128 MB. Override this by using the following connection string.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;SSCE:Temp File Max Size=256;

Supplying the database password

Use this connection string to provide the database password when opening the connection.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;SSCE:Database Password='myPassword';