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 :

[VB.Net] Comment poursuivre un traitement après une exception ?


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut [VB.Net] Comment poursuivre un traitement après une exception ?
    Salut,

    J'essaye de remplir des radio-boutons sur un formulaire web à partir d'une requête SQL.
    Si par exemple on récupère un 'O' on remplit 'Oui'.
    Si dans la table la valeur est nulle, on ne doit pas sélectionner un radio-bouton.

    Dans le code VB la syntaxe suivante est utilisée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monRadioBouton1.selectedvalue = resultat_du_SQL
    Le problème est qu'une exception ArgumentOutOfRangeException est levée dans le cas où le résultat du SQL est nul, ce qui est une valeur possible, pas une erreur.

    On est en train d'essayer d'intégrer un try catch qui ne fait rien quand il a ArgumentOutOfRangeException.
    Il n'y a plus de message d'erreur mais ça ne fait pas la suite du code qui continue le remplissage du formulaire avec entre autres d'autres radio-boutons.

    Comment faire ?

    Merci

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Points : 122
    Points
    122
    Par défaut
    Coucou

    Je pense que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monRadioBouton1.selectedvalue = resultat_du_SQL
    plante parce que la valeur dans resultat_du_SQL n'existe pas. Vérifie bien que ton radiobutton contient bien les valeurs 'O', 'N'... en faisant des "Add()" préalablement. Tu peux debugger pour voir ce que contient ton radiobutton en mettant un point d'arrêt juste avant ta ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monRadioBouton1.selectedvalue = resultat_du_SQL
    Bonne chance

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 114
    Points : 102
    Points
    102
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (resultat_du_sql == null)
    {
        resultat_du_sql = truc
    }
    radiobuton.selectedvalue = resultat_du_sql

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Je vais clarifier un peu :

    J'ai une table avec plusieurs champs dont 3 qui correspondent chacun à un groupe de radio-boutons.

    Les valeurs possibles de ces champs dans la base de données sont 'O', 'N', ou null.
    Dans les 2 1ers cas on coche le radio-bouton correspondant ('Oui' / 'Non'), dans le 3e on ne coche rien. Le 3ème cas plante.

    Il pourrait aussi bien y avoir 10 ou 20 champs comme ceux-ci, donc on voudrait éviter de faire le test == null pour chacun des champs.

    On pensait au try-catch avec la bonne gestion d'exceptions : si erreur on continue et on passe au champ suivant.

    Est-ce possible ou alors on doit tester == null pour chacun (dans ce cas on se fera une fonction de test...) ?

    Merci

  5. #5
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Une exception est couteuse en resource, donc il vaut mieux gerer les trois cas de figures, tu peux faire une methode qui prend en parametre un bonton radio que tu utiliseras pour tes groupes de RB.
    Mehdi Feki : Modérateur .Net

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Points : 122
    Points
    122
    Par défaut
    Pour remarque : il se peut que la valeur "null" renvoyée par la base de données soit en fait : Tu aurais donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (resultat_du_sql == DBNull.Value)
    {
        resultat_du_sql = truc
    }
    radiobuton.selectedvalue = resultat_du_sql

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par mehdi_tn
    Une exception est couteuse en resource, donc il vaut mieux gerer les trois cas de figures, tu peux faire une methode qui prend en parametre un bonton radio que tu utiliseras pour tes groupes de RB.
    C'est ce qu'on a finalement fait. Merci.

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

Discussions similaires

  1. [VB.NET]Comment modifier un textbox a partir d'une dll?
    Par Subkill dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 21/01/2008, 21h38
  2. Réponses: 2
    Dernier message: 26/08/2006, 12h56
  3. Réponses: 10
    Dernier message: 08/08/2006, 10h24
  4. Réponses: 6
    Dernier message: 11/05/2006, 16h00
  5. Réponses: 6
    Dernier message: 09/12/2005, 11h14

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