2010-12-02 125 views
0

大家好我已經成功地從代碼中顯示的數據庫實例中獲取數據。但是,如何從數據庫實例中獲取數據庫名稱。我無法找到任何關於此的屬性。請幫忙。微軟企業庫連接字符串

private Database _db = EnterpriseLibraryContainer.Current.GetInstance<Database>("ConnString"); 

回答

1

有這個沒有明確的財產,因爲數據庫是數據庫技術獨立的階級,和「數據庫名稱」的概念是分貝具體。就像Sqlite或SqlCE一樣,甚至沒有「數據庫名稱」,只是文件名。

如果知道數據庫的類型,可以使用「_db.ConnectionString」來獲取連接字符串,然後解析該連接字符串。每個ADO.NET提供程序都包含一個連接字符串構建器類來爲您解析。

例如,如果您有MS SQL連接字符串,就可以得到該數據庫名是這樣的:

var connectionStringBuilder = new SqlConnectionStringBuilder(_db.ConnectionString); 
string databaseName = connectionStringBuilder.InitialCatalog; 

不同的數據庫供應商當然會使用不同的屬性和術語給你這個信息。