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

Accès aux données Discussion :

[C#] Teste d'une connexion à une DB


Sujet :

Accès aux données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 38
    Points : 30
    Points
    30
    Par défaut [C#] Teste d'une connexion à une DB
    Bonjour,

    J'aimerai tester si une connexion est correcte en passant par une fonction qui me renvoie true ou false.

    J'ai fais une fonction mais qui n'est vraiment pas performante.
    J'ouvre la connexion dans un try, et si la connexion n'est pas valide, je rentre dans le catch qui me renvoie false.

    Le souci, c'est lorsqu'elle n'est pas valide, cela prend plusieurs secondes avant qu'il ne passe dans le catch.

    Voici mon code :

    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
     
            private Boolean TestCnx(string cnxstring)
            {
                try
                {
                    IDbConnection cnxTest;
     
                    if (cnxstring.ToLower() == "access" || cnxstring.ToLower() == "dbase")
                        cnxTest = new OleDbConnection(FormCnxString.CnxStrDevis);
                    else
                        cnxTest = new SqlConnection(FormCnxString.CnxStrDevis);
     
                    cnxTest.Open();
                    cnxTest.Close();
                    return true;
                }
                catch
                {
                    return false;
                }
            }
    Auriez d'autres solutions à me proposer?

    Merci

  2. #2
    Nip
    Nip est déconnecté
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    963
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 963
    Points : 1 076
    Points
    1 076
    Par défaut
    L'utilisation du try catch dans ce type de cas n'est pas recommande, etant donne que c'est un comportement normal de l'appli. L'utilisation d'un if est preferable et tu peux utiliser ConnectionState.Open pour ca:

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SqlConnection dbConnection = new SqlConnection(connectionString);
    if(dbConnection.State == ConnectionState.Open)
    {
    	...
    }

  3. #3
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Si ça prend du temps, c'est dans le acs où l'application n'arrive à contacter le serveur, elle essaye donc pendant un certain temps avant de générer un timeout. Tu n'as qu'à jouer avec la valeur de ConnectionTimeout de ton objet SqlConnection.
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Nip, je ne peux faire cette technique car je dois d'abord ouvrir ma connexion. Par conséquent je devrais de nouveau attendre.

    Par contre, la solution de Cardi est envisageable. Mais malheureusement, la propriété ConnectionTimeout est en readOnly

    Pour une connection à sqlserveur, il faudrai ajouter la propriété TimeOut dans la connectionstring... Mais ma connection peut recevoir plusieur type de connection...

    Seriez vous comment modifié la propriété ConnectionTimeout ?

    Merci

  5. #5
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    En effet, c'est ReadOnly... Désolé
    Et j'avoue que je n'ai pas trouvé comment modifier le timeout de connexion
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  6. #6
    Nip
    Nip est déconnecté
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    963
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 963
    Points : 1 076
    Points
    1 076
    Par défaut
    Ce post devrait repondre a ta question: http://codebetter.com/blogs/peter.va...20/141459.aspx

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Merci pour le lien, mais cette solution fonctionne uniquement pour les connexions à sqlserver.

    Comme dit plus haut, ma connexion peut être faite à sql server mais aussi à à une connexion Oledb (access, dbase, ...).


    Donc je suis toujours à la recherche d'une solution .

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/04/2007, 15h17
  2. Pertinence d'une connexion à une base mysql.
    Par gigigao dans le forum Visual C++
    Réponses: 4
    Dernier message: 11/08/2006, 11h43
  3. Erreur dans un programme php pour une connexion à une bdd
    Par gaetan.tranvouez dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/06/2006, 21h06

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