我不想使用字符串操作函数来拆分连接字符串,以获得Server、Database、Username和Password。
我读了下面的链接和接受的答案,我发现这是从连接字符串中获取用户名和密码的最好方法,但是数据库名称呢?
Right way to get username and password from connection string?
如何使用SqlConnectionStringBuilder从连接字符串中获取数据库名称。( DataSource是否为服务器名称?)
发布于 2012-05-11 19:45:05
如果需要,可以使用特定于提供程序的ConnectionStringBuilder类(在适当的命名空间中)或System.Data.Common.DbConnectionStringBuilder
来抽象连接字符串对象。您需要知道用于指定要查找的信息的特定于提供程序的关键字,但对于SQL Server示例,您可以执行以下两项操作之一:
System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString);
string server = builder.DataSource;
string database = builder.InitialCatalog;
或
System.Data.Common.DbConnectionStringBuilder builder = new System.Data.Common.DbConnectionStringBuilder();
builder.ConnectionString = connectionString;
string server = builder["Data Source"] as string;
string database = builder["Initial Catalog"] as string;
发布于 2014-02-12 14:59:22
一种更简单的替代方法是从connection对象本身获取信息。例如:
IDbConnection connection = new SqlConnection(connectionString);
var dbName = connection.Database;
同样,您也可以从connection对象中获取服务器名称。
DbConnection connection = new SqlConnection(connectionString);
var server = connection.DataSource;
发布于 2012-05-11 19:42:51
string connectString = "Data Source=(local);" + "Integrated Security=true";
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);
Console.WriteLine("builder.InitialCatalog = " + builder.InitialCatalog);
https://stackoverflow.com/questions/10550541
复制相似问题