2010-12-02 4 views
0

Bonjour à tous J'ai réussi à extraire des données de l'instance de base de données affichée dans le code. Mais comment puis-je obtenir le nom de la base de données à partir de l'instance de base de données. Je ne trouve aucune propriété à ce sujet. S'il vous plaît aider.Chaîne de connexion Microsoft Enterprise Library

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

Répondre

1

Il n'y a pas de propriété explicite pour cela, parce que la base de données est une technologie de base de données de classe indépendante, et le concept de « nom de la base » est db spécifique. Heck, des choses comme Sqlite ou SqlCE n'ont même pas de "noms de bases de données", juste des noms de fichiers.

Vous pouvez utiliser "_db.ConnectionString" pour extraire la chaîne de connexion, puis l'analyser si vous connaissez le type de base de données. Chaque fournisseur ADO.NET inclut une classe de générateur de chaîne de connexion pour effectuer cette analyse pour vous.

Par exemple, si vous avez une chaîne de connexion MS Sql, vous pouvez obtenir le nom de la base de données de cette façon:

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

fournisseurs de bases de données différentes seront bien sûr utiliser des propriétés différentes et de la terminologie pour vous donner ces informations.

Questions connexes