从连接字符串中删除了数据库

Ero*_*ocM 4 c# database sql-server-2008-r2

我得到了一个方法来获取我们的数据库连接字符串到Sql Server:

SqlConnection GetConnectionString()
Run Code Online (Sandbox Code Playgroud)

我调用它并得到连接字符串应该是什么.如果数据库不存在,我需要没有数据库名称的连接字符串.如果我尝试使用带有数据库名称的连接字符串,我会收到一个错误,它无法连接到数据库,因为它不存在.

我打电话是这样的:

using (var connection = new SqlConnection(GetConnectionString().ConnectionString))
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有数据库名称的情况下轻松地重新创建连接字符串?

Mut*_*key 11

SqlConnectionStringBuilder aBuilder = 
   new SqlConnectionStringBuilder(yourConnectionStringWithDatabase);
aBuilder.InitialCatalog = "";

string yourConnectionStringWithoutDatabase = aBuilder.ConnectionString;
Run Code Online (Sandbox Code Playgroud)


Did*_*xis 0

这很容易

var connectionString = "data source=someInstance;initial catalog =someDatabase;etc.";

var pattern = "initial catalog[=\\s\\w]+;";

var dbRemoved = Regex.Replace(connectionString, pattern, "");
Run Code Online (Sandbox Code Playgroud)

请注意,我没有处理区分大小写的问题,但这应该是满足您的要求的一个良好的开始。