1 votes

Existe-t-il des classes (ou des méthodes) permettant de créer une chaîne de connexion formatée, à partir d'un nom de fournisseur, d'un nom d'utilisateur, d'un mot de passe, etc.

Eg.

ConnectionDetails cd = new ConnectionDetails ();
cd.ProviderName = "System.Data.OleDb";
cd.DataSource = "serverAddress";
cd.Catalog = "database";
cd.UserId = "userId";
cd.Password = "password";

string connectionString = cs.CreateConnectionString();
// Should return:
// "Provider=SQLOLEDB;Data Source=serverAddress;Initial Catalog=database;User Id=userId;Password=password;"

J'écrirais bien ma propre classe, mais je ne sais pas comment récupérer par programme une propriété de fournisseur de chaîne de connexion (SQLOLEDB dans cet exemple) à partir d'un nom de fournisseur de db invariant (System.Data.OleDb).

Editer :

Vous pouvez faire une

DbProviderFactories.GetFactory("System.Data.OleDB").CreateConnectionStringBuilder()

Mais le DBConnectionStringBuilder renvoyé ne connaît toujours pas la propriété du fournisseur de la chaîne de connexion, même si, dans ce cas, la classe dérivée possède une propriété "Provider".

2voto

harpo Points 17399

La chose la plus proche que je connaisse est DbConnectionStringBuilder .

Comme les propriétés requises par les différents fournisseurs varient, il utilise un tableau associatif (collection de noms et de valeurs) plutôt que des propriétés fixes.

Votre exemple serait donc le suivant

DbConnectionStringBuilder csb = new DbConnectionStringBuilder();
csb["ProviderName"] = "System.Data.OleDb";
csb["DataSource"] = "serverAddress";
csb["Catalog"] = "database";
csb["UserId"] = "userId";
csb["Password"] = "password";

string connectionString = csb.ConnectionString;

0voto

Jeffrey L Whitledge Points 27574

Il existe une classe OleDbConnectionStringBuilder qui crée la chaîne de connexion pour vous.

Mais il semble que vous essayez de faire en sorte que le nom du fournisseur soit généré pour vous, et je ne pense pas que cela fonctionne vraiment de cette manière. Puisque le nom du fournisseur peut varier, c'est quelque chose que vous allez devoir fournir pour indiquer à la connexion ce qu'elle doit faire. Quel que soit le mécanisme que vous utilisez pour sélectionner votre connexion à la base de données (ou pour piloter vos méthodes d'usine de connexion à la base de données si vous optez pour cette voie), il devra également fournir le nom du fournisseur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X