2010-12-02 2 views
0

Привет всем Я успешно получил данные из экземпляра базы данных, показанного в коде. Но как получить имя базы данных из экземпляра базы данных. Я не могу найти никаких свойств относительно этого. Пожалуйста помоги.Строка подключения Microsoft Enterprise Library

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

ответ

1

Для этого нет явного свойства, поскольку база данных - это независимый от технологии баз данных класс, а понятие «имя базы данных» является специфичным для db. Черт, такие вещи, как Sqlite или SqlCE, даже не имеют «имен базы данных», просто имена файлов.

Вы можете использовать «_db.ConnectionString», чтобы вернуть строку соединения, а затем проанализировать ее, если вы знаете тип базы данных. Каждый поставщик ADO.NET включает в себя класс построителя строки соединений для этого синтаксического анализа для вас.

Например, если у вас есть строка подключения MS Sql, вы можете получить имя базы данных таким образом:

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

Различные поставщики баз данных будут, конечно, использовать различные свойства и терминологию, чтобы дать вам эту информацию.

Смежные вопросы