大家好我已成功从代码中显示的数据库实例中获取数据。但是如何从数据库实例中获取数据库名称。我找不到任何关于此的属性。请帮忙。
private Database _db = EnterpriseLibraryContainer.Current.GetInstance<Database>("ConnString");
答案 0 :(得分:1)
没有明确的属性,因为Database是一个独立于数据库技术的类,“database name”的概念是db特定的。哎呀,像Sqlite或SqlCE这样的东西甚至没有“数据库名称”,只有文件名。
您可以使用“_db.ConnectionString”来取回连接字符串,然后在知道数据库类型的情况下解析它。每个ADO.NET提供程序都包含一个连接字符串构建器类,可以为您进行解析。
例如,如果您有MS Sql连接字符串,则可以通过以下方式获取数据库名称:
var connectionStringBuilder = new SqlConnectionStringBuilder(_db.ConnectionString);
string databaseName = connectionStringBuilder.InitialCatalog;
不同的数据库提供商当然会使用不同的属性和术语来为您提供此信息。