Bonjour,
Je développe un programme qui viens chercher des informations stockées dans des bases de données.
Il y a tellement d'information qu'une base est crée chaque mois.
La base en cours s'appelle BDD, et les précédentes sont nommées sous le format suivant : "BDD_jj_MM_yyyy" (jj : dernier jour du mois).
Mon problème est que je n'arrive pas à changer ma chaine de connexion pour accéder à une autre base de donnée pendant l'exécution du programme.
Après plusieurs recherches, j'ai fait le code suivant :
Mais cela ne marche pas comme je le voudrais :
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37 [...] majConnectionString(debut, fin); Class1 class1 = new Class1(); string[] donnees = class1 .getDonnees(debut, fin); [...] private void majConnectionString(DateTime debut, DateTime fin) { string bdd; if (!debut.Month.Equals(DateTime.Today.Month)) { bdd = "BDD_"; bdd += DateTime.DaysInMonth(debut.Year, debut.Month) + "_" + debut.ToString("MM") + "_" + debut.Year; } else { bdd = "BDD"; } int i; Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); for (i = 0; i < config.ConnectionStrings.ConnectionStrings.Count; i++) { if (config.ConnectionStrings.ConnectionStrings[i].Name.Contains("BDDConnectionString")) break; } try { ConnectionStringSettings oldConnex = config.ConnectionStrings.ConnectionStrings[i]; config.ConnectionStrings.ConnectionStrings.Remove(oldConnex); } catch (Exception err) { } ConnectionStringSettings newConnex = new ConnectionStringSettings("MON_PROJET.Properties.Settings.BDDConnectionString", "Data Source=SOURCE;Initial Catalog=" + bdd + ";User ID=USER_ID;Password=PASSWORD"); config.ConnectionStrings.ConnectionStrings.Add(newConnex); config.Save(ConfigurationSaveMode.Modified); }
en cours d'exécution, le fichier "MON_PROJET.exe.config" est bien modifié.
Mais je n'arrive à accéder qu'à la base dont la chaine de connexion était dans le fichier MON_PROJET.exe.config avant l'exécution du programme.
En réalité ça "marche", mais il faut que je quitte le programme à chaque fois.
Ce qui n'est premièrement pas vraiment pratique, mais surtout très problématique si je veux fait une requête à cheval sur deux mois (ou même sur plusieurs mois).
Avez vous une solution, ou au moins une piste à exploiter?
Merci d'avance
Partager