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

VB.NET Discussion :

valeur vide (null)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 267
    Par défaut valeur vide (null)
    bonjour
    j'ai pas trouvé une solution pour la deuxième cas le (else) bien sur elle m' affiche l'erreur suivant
    (Aucune ligne à la position 0.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     If (dst.Tables("table").Rows(0).Item(0)) Then
        MsgBox("il y a un valeur de retour")
                Else
                     MsgBox("il n y a pas un valeur de retour")
                End If
    merci de m'aider

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2006
    Messages : 128
    Par défaut
    je te propose ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try
     If (dst.Tables("table").Rows(0).Item(0)) Then
        MsgBox("il y a un valeur de retour")
                Else
                     MsgBox("il n y a pas un valeur de retour")
       End If
     Catch ex As Exception
                MsgBox("il n y a pas un valeur de retour, puisqu'il n ya aucune ligne!!!")
      End Try

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    s'il n'y a pas de rows, rows.count vaut 0 c'est donc rows.count qu'il faut tester avant de lire la ligne y

    passer par une exception est une mauvaise idée, c'est très pénalisant niveau performances

    au passage ca n'a rien à voir avec null (nothing en vb.net)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2006
    Messages : 128
    Par défaut
    ok pol! à ton service!

    donc faisant un test sur les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    try
    If dst.Tables("table").rows.count -1 < 1 then
     MsgBox("il n y a pas de valeur de retour, puisqu'il n ya aucune  ligne!!!")
    exit sub
    end if 
       If (dst.Tables("table").Rows(0).Item(0)) Then
        MsgBox("il y a de valeur de retour")
                Else
                     MsgBox("il n y a pas de valeur de retour")
       End If
     Catch ex As Exception
               msgbox(ex.message)
      End Try

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 196
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    try
    If dst.Tables("table").rows.count = 0 then
     MsgBox("Aucune ligne!!!")
    exit sub
    end if 
       If (dst.Tables("table").Rows(0).Item(0)) Then
        MsgBox("il y a de valeur de retour")
                Else
                     MsgBox("il n y a pas de valeur de retour")
       End If
     Catch ex As Exception
               msgbox(ex.message)
      End Try

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    je préfère le = 0, parce que le -1 < 1 ca fait vraiment tordu
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2006
    Messages : 128
    Par défaut
    benoit!!!!!!!!!!!!!!!!
    soit n un nombre Naturel ensemble N
    si n <1 implique n=0


    au fait!!! le Compteur row d'un dataset debute par 0 ou 1?

  8. #8
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Vous vous compliquez la vie !!!

    Si l'objectif est uniquement de savoir s'il y a des (une ou plusieurs) lignes retournées par la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If dst.Tables(0).Rows.Count > 0 Then
        MsgBox("Il y a des lignes")
    Else
        MsgBox("Il n'y a pas de lignes")
    End IF
    Mais attention !!! Cela ne fonctionne que si le remplissage du dataset se passe sans souci. Si votre requête sql (par exemple) contient une erreur et plante, il n'y aura pas de table dans le dataset et donc dst.Tables(0) renverra une erreur.

    Pour contourner cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If dst.Tables.Count > 0 AndAlso dst.Tables(0).Rows.Count > 0 Then
        MsgBox("Il y a des lignes")
    Else
        MsgBox("Il n'y a pas de lignes")
    End IF
    Dans ce cas, le membre à droite de l'opérateur AndAlso ne sera évalué que si le membre de gauche est vérifié. J'insiste sur l'opérateur AndAlso. Un simple And provoquerait un plantage en cas de dataset vide.

    Griftou.

Discussions similaires

  1. Valeur vide / NULL dans un champ de type numérique
    Par Esab75 dans le forum Débuter
    Réponses: 2
    Dernier message: 02/09/2010, 11h44
  2. Réponses: 16
    Dernier message: 21/08/2008, 13h58
  3. [SQL] affecter la valeur SQL NULL si la variable est vide
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/03/2007, 18h44
  4. Réponses: 2
    Dernier message: 14/02/2007, 16h22
  5. [INSERT / UPDATE] Remplacer une valeur vide par NULL
    Par jissay dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 28/09/2006, 14h15

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