Optimiser mon code ???

Signaler
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
-
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
-
Bonjour à tous,

Je voudrais savoir si il n'y a pas une astuce pour simplifier mon code.

En effet j'utilise X fois une chaîne de connexion SqlServer pour me connecter à ma BdD, et j'aimerai savoir comment faire pour que lorsque je me connecte ailleurs que sur mon poste de travail, je n'ai pas à modifier à ces X endroits ma chaîne de connexion ? (Mon projet est de l'ASP.net mais je pense que c'est ici qu'il faut poster ...)

J'espère que je suis clair dans ma question ...

Merci d'avance.

11 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
87
Salut,

Le fichier de configuration (web.config) et en particulier l'élément ConnectionStrings sert justement à celà.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Merci coq,

J'ai justement l'élément ConnectionString dans mon web.config. Il s'est inclut dedans automatiquement car j'ai fait une grid view avec l'assistant de visual studio 2005. Pour m'en servir sur mes autres pages dans le code behind, je ne vois pas comment faire.
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Ah j'ai compris le système, il suffit de se servir de son "name". C'est super ça.
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
J'ai parlé trop vite, ça ne marche pas pour ma page de connexion logon.apsx
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
87
Exemple :

Fichier de configuration :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    CoqBlog
*/
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Merci coq, une dernière question : que signifie "référencé l'assembly System.Configuration.dll", merci d'avance de ton aide.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
87
Pour que l'IDE connaisse les types que l'ont veut utiliser (que ce soit pour afficher les aides ou tout simplement pour le spécifier au compilateur), il faut bien lui indiquer les assemblies dans lesquels ces types se trouvent.
Voir fonctionnalité "Ajouter une référence" de l'IDE

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Merci pour ce complément d'information et de ton aide, ça marche impect !
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
87
De rien :-)

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
18
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
10 février 2009

Bonjour,

Evidemment l'idée du fichier de config est la bonne mais on a quand meme X fois le code dupliqué qui cette fois lit le fichier de config. C'est déjà mieux mais pas forcement idéal en terme de maintenance...

Le mieux est d'avoir une classe static du genre :

public static class DataManager
{
    public string ConnectionString
    {
        get
        {
            ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["ChaineDeConnexion"];
            ...
            return settings.ConnectionString;
        }
    }
}

Et que tous les endroits du code qui en ont besoin font un appel à DataManager.ConnectionString
En même temps l'idée serait peut-être d'étendre tout ca pour que ce soit cette classe là qui fournisse la IDbConnection... Ou plus compliqué mais 10 fois mieux : une interface et une factory... lol

A+

Fabrice
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Avec mon niveau euh oui !!! lol
J'ai simplement créé une classe connexion avec une méthode pour éviter d'écrire ce code X fois, pour l'instant cela fera l'affaire. Mais par la suite, si j'ai l'occasion d'apprendre ce que c'est qu'une interface avec une factory pourquoi pas.
A plus les pro du code !