Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用SqlConnectionStringBuilder从连接字符串获取数据库名称_C#_Asp.net_Sql_Ado.net - Fatal编程技术网

C# 如何使用SqlConnectionStringBuilder从连接字符串获取数据库名称

C# 如何使用SqlConnectionStringBuilder从连接字符串获取数据库名称,c#,asp.net,sql,ado.net,C#,Asp.net,Sql,Ado.net,我从不想使用字符串操作拆分连接字符串,并获取服务器、数据库、uid和密码 我阅读了下面的链接并阅读了接受的答案,我发现这是从连接字符串中获取userid和password的最好方法,但是数据库名呢 如何使用SqlConnectionStringBuilder从连接字符串获取数据库名称。(数据源是否为服务器名称?请参阅: 获取或设置与连接关联的数据库的名称 此属性对应于连接字符串中的“初始目录”和“数据库”键 数据库名称是属性的值。您可以使用属性或builder[“数据库”]也可以使用。我用不同

我从不想使用字符串操作拆分连接字符串,并获取服务器、数据库、uid和密码

我阅读了下面的链接并阅读了接受的答案,我发现这是从连接字符串中获取userid和password的最好方法,但是数据库名呢

如何使用SqlConnectionStringBuilder从连接字符串获取数据库名称。(数据源是否为服务器名称?

请参阅:

获取或设置与连接关联的数据库的名称

此属性对应于连接字符串中的“初始目录”和“数据库”键


数据库名称是属性的值。

您可以使用属性或
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;