C# 如何使用SqlConnectionStringBuilder从连接字符串获取数据库名称
我从不想使用字符串操作拆分连接字符串,并获取服务器、数据库、uid和密码 我阅读了下面的链接并阅读了接受的答案,我发现这是从连接字符串中获取userid和password的最好方法,但是数据库名呢 如何使用SqlConnectionStringBuilder从连接字符串获取数据库名称。(数据源是否为服务器名称?请参阅: 获取或设置与连接关联的数据库的名称 此属性对应于连接字符串中的“初始目录”和“数据库”键C# 如何使用SqlConnectionStringBuilder从连接字符串获取数据库名称,c#,asp.net,sql,ado.net,C#,Asp.net,Sql,Ado.net,我从不想使用字符串操作拆分连接字符串,并获取服务器、数据库、uid和密码 我阅读了下面的链接并阅读了接受的答案,我发现这是从连接字符串中获取userid和password的最好方法,但是数据库名呢 如何使用SqlConnectionStringBuilder从连接字符串获取数据库名称。(数据源是否为服务器名称?请参阅: 获取或设置与连接关联的数据库的名称 此属性对应于连接字符串中的“初始目录”和“数据库”键 数据库名称是属性的值。您可以使用属性或builder[“数据库”]也可以使用。我用不同
数据库名称是属性的值。您可以使用属性或
builder[“数据库”]
也可以使用。我用不同的案例测试了它,它仍然有效 如果需要,可以使用特定于提供程序的ConnectionStringBuilder类(在适当的命名空间内)或System.Data.Common.DbConnectionStringBuilder来抽象连接字符串对象。您需要知道用于指定要查找的信息的特定于提供商的关键字,但对于SQL Server示例,您可以执行以下两种操作之一:
string connectString = "Data Source=(local);" + "Integrated Security=true";
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);
Console.WriteLine("builder.InitialCatalog = " + builder.InitialCatalog);
System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString);
string server = builder.DataSource;
string database = builder.InitialCatalog;
或
这给了你Xact
System.Data.SqlClient.SqlConnectionStringBuilder connBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder();
connBuilder.ConnectionString = connectionString;
string server = connBuilder.DataSource; //-> this gives you the Server name.
string database = connBuilder.InitialCatalog; //-> this gives you the Db name.
一个更简单的替代方法是从连接对象本身获取信息。例如:
IDbConnection connection = new SqlConnection(connectionString);
var dbName = connection.Database;
同样,您也可以从连接对象获取服务器名称
DbConnection connection = new SqlConnection(connectionString);
var server = connection.DataSource;
这就是我要找的。谢谢。这对于SqlConnection
来说是特定的。有没有类似的方法来实现这种跨关系数据库系统?@AmitJoshi他们不应该都实现IDbConnection
?@nawfal:我同意,但这仍然不能使它可用。我在这项质询中已详细解释。它可以获取数据库和数据源,但无法通过这种方式获取用户ID和密码代码>-“数据库”是一个无效的关键字。@Sandra yes,您是正确的。如果我们使用SqlConnectionStringBuilder,则生成器[“数据库”]作为字符串将起作用。
DbConnection connection = new SqlConnection(connectionString);
var server = connection.DataSource;