Bonjour
je veux créer une connexion (cnx) vers une base de données, qui peut être SQL server, DB2 IBM (AS400) ou Oracle
Pour connaître la base de données, je lis un paramètre : provider :
Pour éviter toute complication, j'ai mis en commentaire le code des deux derniers pour me concentrer sur SQL Server.
cnx est instancié dans le switch et cnx n'est donc pas utilisable dans le code APRES LE SWITCH.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 // Choix du fournisseur d'accès int provider = (Convert.ToInt16(urlCpte))/10; var cnx; switch (provider) { case 1: // SQL Server cnx = new SqlConnection(); break; case 2: // DB2 AS400 //cnx = new SqlConnection(); break; case 3: // ORACLE //cnx = new SqlConnection(); break; } // Preparation var chaine = urlCpte; cnx.ConnectionString = Convert.ToString(ConfigurationManager.ConnectionStrings[chaine]); DbDataReader dr; cnx.Open(); ...
Erreur de compilation
Si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // Choix du fournisseur d'accès int provider = (Convert.ToInt16(urlCpte))/10; var cnx = new SqlConnection(); // Preparation var chaine = urlCpte; cnx.ConnectionString = Convert.ToString(ConfigurationManager.ConnectionStrings[chaine]); DbDataReader dr; cnx.Open(); ...
ça marche, mais je perd le choix de type d'objet en fonction du paramètre provider
Question :
Comment faire ce switch pour créer cnx en fonction de la base de données ?
Partager