IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Best-practice : gestion de la connexion à mon serveur SQL


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Par défaut Best-practice : gestion de la connexion à mon serveur SQL
    Bonjour !

    Je développe actuellement une application web (VS 2008, ASP.Net, Framework 3.5) pour laquelle chaque page (y compris mon masterPage) doit accéder à une base de données SQL.

    Je me demandais quelle était la meilleure manière de gérer la connexion à cette base de données.

    Actuellement, mon connectionString se trouve dans mon web.config. Lors de l'ouverture de session (void Session_Start(object sender, EventArgs e) dans mon Global.asax) je vais lire ce connectionString, je créée un objet SqlConnection auquel je donne ma connectionString et je mets cet objet SqlConnection en session.

    Ensuite, pour chaque page, dans l'évènement Page_Load(), je récupère et caste mon objet SqlConnection et je le mets à disposition du reste du code de la page.

    Est-ce une bonne manière de procéder ? ou y'a-t-il une manière de faire plus légère en terme de ressource ?

    merci pour vos précieux conseils

    Steve

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Non, tu dois créer, ouvrir et fermer ta connexion à chaque requête. Le framework utilise un pool de connexions, laisse le faire son boulot tranquillou

  3. #3
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Par défaut
    Merci pour ta réponse.

    En fait je prévois d'ouvrir et fermer ma connexion à chaquer requête. Mais est-ce qu'il faut à chaque fois déclarer l'objet connexion à chaque requête ou est-ce que je peux justement "promener" mon objet connexion créé dans le global.asax à travers une variable de session ?

    Je m'explique avec le code :

    Création de l'objet connexion dans mon global.asax :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SqlConnection conn = new SqlConnection();
            conn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["connectionString"];
            Session["conn"] = conn;
    Avant chaque requête je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SqlConnection conn = (SqlConnection)Session["conn"];
    conn.open();
    Est-ce correcte ?

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Why not mais perso, je mets le moins de choses possibles en session.
    Le fait de créer une connexion à chaque fois ne doit pas être plus couteux que de taper en session imo

  5. #5
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Par défaut
    Ok merci pour tes conseils alors !

    Pour moi, problème résolu, mais si d'autres personnes veulent noter ici leur manière de gérer leur connexion à une bdd, n'hésitez pas !

  6. #6
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Salut,
    je pense que tu as encore la possibilité d’éviter l'utilisation de Session: par exemple tu mets dans un fichier tout ce qui touche l’accès à la base, à savoir l'ouverture de la connexion, la sélection, etc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            public SqlConnection CreateConnection()
            {            
                SqlConnection conn = new SqlConnection();
                conn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["connectionString"];
                conn.Open();
                return conn;
            }
    Avant chaque requête tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlConnection conn=xxxxxxx.CreateConnection();
    Tu peux même éviter de mettre toutes le requêtes dans le code behind de la page, mettre toutes dans le fichier. Mais avant tout, ça dépend de l'architecture de ton appli.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connexion à mon serveur local bloqué par ma ALicebox
    Par Jdumont dans le forum Hardware
    Réponses: 16
    Dernier message: 08/03/2012, 12h41
  2. [Utilisation] Probleme connexion à mon serveur Subversion
    Par roroo888 dans le forum Subversion
    Réponses: 0
    Dernier message: 03/09/2010, 19h34
  3. Gestion des fichiers de mon serveur
    Par dot-_-net dans le forum Applets
    Réponses: 2
    Dernier message: 07/12/2008, 18h34
  4. Réponses: 16
    Dernier message: 05/06/2008, 11h32
  5. connexion à mon serveur ftp impossible ?
    Par petitclem dans le forum Distributions
    Réponses: 0
    Dernier message: 28/05/2008, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo