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

C# Discussion :

[Entreprise Library] Ouverture/Fermeture de connection


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Par défaut [Entreprise Library] Ouverture/Fermeture de connection
    Bonjour à tous !

    Pour mon application C#, je sus en train de tester l'outil Microsoft Entreprise Library.

    Je trouve que c'est chaint à configurer mais, une fois cette étape passée (grâce aux nombreux tutos que j'ai trouvé ici et là ! ^^), c'est vraiment bien à utiliser !

    Je me pose une question. Dans ce très bon article, on voit comme exemple :

    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
    public ArrayList AllInformations()
    {
        ArrayList list = new ArrayList();
     
        Database db = DatabaseFactory.CreateDatabase("Oracle");
     
        string sqlQuery = "SELECT * FROM portail_infos";
        DbCommand command = db.GetSqlStringCommand(sqlQuery);
     
        IDataReader reader = db.ExecuteReader(command);
     
        while(reader.Read())
        {
            Information inf = new Information(reader.GetInt32(0), 
                                              reader.GetString(1), 
                                              reader.GetString(2),
                                              reader.GetDateTime(3), 
                                              reader.GetBoolean(4));
            list.Add(inf);
        }
        return list;
    }
    Et effectivement, en testant, ça marche très bien !
    Mais, je me demandais comment est gérée l'accès à la base de données ?
    Est-ce que la connection s'ouvre avec le CreateDatabase() ? Si oui, elle se ferme où ? Ou alors, est-ce qu'elle s'ouvre au lancement de l'application ?

    Je ne sais pas si quelqu'un aura la réponse, mais dans tous les cas, merci !

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Bonjour,

    à mon avis elle s'ouvre dans le ExecuteReader et se ferme lorsque le reader est disposé.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Par défaut
    D'accord, merci pour cette réponse.
    J'ai une autre question :

    Si j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        Database db = DatabaseFactory.CreateDatabase("Oracle");
        string sqlQuery = "SELECT * FROM portail_infos";
        DbCommand command = db.GetSqlStringCommand(sqlQuery); 
        using (IDataReader reader = db.ExecuteReader(command))
        {
            // code à exécuter
        };
    au vue du code, le DbComand (qui possède une méthode Dispose) est-il libéré avec le DataReader ?

  4. #4
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    au vue du code, le DbComand (qui possède une méthode Dispose) est-il libéré avec le DataReader ?
    Je pense que oui mais pour t'en assurer réitere ton ExecuteReader

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    using (IDataReader reader = db.ExecuteReader(command))
        {
            // code à exécuter
        };
     
    // si le command est clos ca marchera pas
    using (IDataReader reader = db.ExecuteReader(command))
        {
            // code à exécuter
        };

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Par défaut
    Pas bête !
    J'ai testé et je n'ai aucune erreur...
    Donc, mon DbCommand n'est pas libéré...

  6. #6
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    En fait je suis bête parce que c'est la même chose en ADO.NET classique

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Par défaut


    J'ai aussi essayé en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    using (IDataReader reader = db.ExecuteReader(command))
        {
            // code à exécuter
        };
     
    command.Dispose(); 
     
    // si le command est clos ca marchera pas
    using (IDataReader reader = db.ExecuteReader(command))
        {
            // code à exécuter
        };
    Et ça marche...

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/07/2006, 12h28
  2. [XSL] ouverture fermeture de balise
    Par sebus dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 19/03/2006, 13h00
  3. ouverture/fermeture d'une fenêtre modale showModelessDialog
    Par marti dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/01/2006, 05h03
  4. [C#] La bonne utilisation des WinForms (ouverture-Fermeture)
    Par Harry dans le forum Windows Forms
    Réponses: 28
    Dernier message: 03/08/2005, 11h39
  5. Plusieurs SELECT dans l'ouverture d'une connection
    Par pmboutteau dans le forum ASP
    Réponses: 6
    Dernier message: 01/04/2005, 11h09

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