如何使用SqlConnectionStringBuilder从连接string获取数据库名称
我从来不想分割连接string使用string操作,并获得服务器,数据库,用户名和密码。
我阅读以下链接并阅读接受的答案,我发现这是从连接string中获取用户标识和密码的最佳方法,但数据库名称呢?
从连接string获取用户名和密码的正确方法?
如何使用SqlConnectionStringBuilder从连接string获取数据库名称。 (数据源是服务器名称?)
有关InitialCatalog属性,请参阅MSDN文档 :
获取或设置与连接关联的数据库的名称…
该属性对应于连接string中的“初始目录”和“数据库”键…
如果需要,可以使用特定于提供者的ConnectionStringBuilder类(在适当的名称空间内)或System.Data.Common.DbConnectionStringBuilder
来抽象连接string对象。 您需要知道用于指定您要查找的信息的特定于提供程序的关键字,但是对于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;
更简单的select是从连接对象本身获取信息。 例如:
IDbConnection connection = new SqlConnection(connectionString); var dbName = connection.Database;
同样,您也可以从连接对象获取服务器名称。
DbConnection connection = new SqlConnection(connectionString); var server = connection.DataSource;
string connectString = "Data Source=(local);" + "Integrated Security=true"; SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString); Console.WriteLine("builder.InitialCatalog = " + builder.InitialCatalog);
数据库名称是SqlConnectionStringBuilder.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.
您可以使用InitialCatalog属性或builder["Database"]
以及。 我testing了不同的情况下,它仍然有效。
- ExecuteReader需要一个开放和可用的连接。 连接的当前状态是正在连接
- 与Parameters.Add和Parameters.AddWithValue的区别
- 如何在C#中创build一个DataTable和如何添加行?
- 连接到SQL Server有时工作
- SQLite数据库locking的exception
- 不信任的entity framework表决 – 与.NET 4相关?
- ExecuteScalar,ExecuteReader和ExecuteNonQuery有什么区别?
- 如果关联的SqlConnection将被丢弃,是否需要SqlCommand.Dispose()?
- 我如何查询entity framework中的空值?