SqlConnection.ChangeDatabase Method

Changes the current database for an open SqlConnection.

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

public override void ChangeDatabase (
	string database
public void ChangeDatabase (
	String database
public override function ChangeDatabase (
	database : String
Not applicable.



The name of the database to use instead of the current database.

Exception typeCondition


The database name is not valid.


The connection is not open.


Cannot change the database.

The value supplied in the database parameter must be a valid database name. The database parameter cannot contain a null value, an empty string, or a string with only blank characters.

When you are using connection pooling against SQL Server 2000, and you close the connection, it is returned to the connection pool. The next time the connection is retrieved from the pool used, the reset connection request piggybacks on the first round trip to the server and executes before the user performs any operations. From the time that you return a connection to the connection pool after calling the ChangeDatabase method, until the time the connection is retrieved, the connection remains active on the database. This prevents you from dropping the database because the connection is still active.

The connection pooler is not influenced by ChangeDatabase as long you do not set Connection Reset to false. As the connection comes out of the pool the connection is reset with the server moving back to the login time database. There are no new connections created or reauthentications. If you set Connection Reset to false, connections in the pool to different databases might result.

The following example creates a SqlConnection and displays some of its read-only properties.

private static void ChangeSqlDatabase(string connectionString)
    // Assumes connectionString represents a valid connection string
    // to the AdventureWorks sample database.
    using (SqlConnection connection = new SqlConnection(connectionString))
        Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
        Console.WriteLine("Database: {0}", connection.Database);

        Console.WriteLine("Database: {0}", connection.Database);

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

Community Additions