2010-12-02 11 views
0

こんにちはすべて私はコードに示されているデータベースインスタンスからデータを正常に取得しました。しかし、データベースインスタンスからどのようにデータベース名を取得するのですか?私はこれに関する何かの特性を見つけることができません。助けてください。Microsoftエンタープライズライブラリの接続文字列

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; 

異なるデータベース・プロバイダは、もちろんあなたにこの情報を提供するために異なる特性や用語を使用します。