NullReferenceException et resultat requete vide [Résolu]

Signaler
Messages postés
21
Date d'inscription
jeudi 11 décembre 2008
Statut
Membre
Dernière intervention
14 janvier 2009
-
Messages postés
21
Date d'inscription
jeudi 11 décembre 2008
Statut
Membre
Dernière intervention
14 janvier 2009
-
Bonjour,

developpant en stage une application pour PDA, je fais de nombreux
essais pour comprendre la logique du code (n'ayant jamais développer
sur PDA ni sur visual studio 2005. Donc, l'étape où je commence à
coincer est la suivante : Comment gérer une requête avec un résultat
nul. Au départ, je me suis dis, c'est comme access, ça le gère
automatiquement. Et bien, non! Du coup, j'ai mis dans la requete un
AND C6 <> 0 


mais le résultat etait le meme (NullReferenceException). Donc, j'ai essayé ensuite avec un IF THEN, mais meme erreur.

Si quelqu'un a déjà connu cette erreur, peut il me faire signe.

PS: Mon code actuel :

Imports System.Data.SqlServerCe
Imports System.Data.Common
Imports System.Data
Imports System.IO
Public Class Form2

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim CnxDb1 As SqlCeConnection = New SqlCeConnection("Data Source=storage card\essai.sdf")
            CnxDb1.Open()            Dim cc1 As String "SELECT c6 FROM correspond WHERE [nom_produit]'carotte' AND c6 <>''"
            Dim c1 As SqlCeCommand = New SqlCeCommand(cc1, CnxDb1)
            If c1.ExecuteScalar.ToString.Equals("") Then
            Else
                Label1.Text = c1.ExecuteScalar.ToString
            End If
        Catch ex As IO.FileNotFoundException
            MsgBox(ex.Message &amp; "erreur")
        End Try
        Try
            Dim CnxDb2 As SqlCeConnection = New SqlCeConnection("Data Source=storage card\essai.sdf")
            CnxDb2.Open()            Dim pren As String "select [nom_produit] from correspond where id_produit " &amp; Label1.Text
            Dim prenom As SqlCeCommand = New SqlCeCommand(pren, CnxDb2)
            TextBox2.Text = prenom.ExecuteScalar.ToString
        Catch ex As IO.FileNotFoundException
            MsgBox(ex.Message &amp; "erreur")
        End Try
    End Sub
End Class

2 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Salut,

If c1.ExecuteScalar.ToString.Equals("") Then

Si la requête ne renvoi aucun résultat, la méthode ExecuteScalar renvoi une référence nulle.
Il faut donc tester celà avant toute autre tentative, l'appel de ToString sur une référence nulle ne risque pas de fonctionner vu qu'il n'y a par définition rien au bout de la référence.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
21
Date d'inscription
jeudi 11 décembre 2008
Statut
Membre
Dernière intervention
14 janvier 2009

Merci beaucoup, mais je viens tout juste de réaliser où était l'erreur principale : le c6 <> "" . En le virant, ca marche direct. Je vais quand meme faire ce que vous me conseillez, pour eviter des erreurs supplémentaires.

Merci.