NullReferenceException et resultat requete vide [Résolu]

Messages postés
21
Date d'inscription
jeudi 11 décembre 2008
Statut
Membre
Dernière intervention
14 janvier 2009
- - Dernière réponse : djeje44800
Messages postés
21
Date d'inscription
jeudi 11 décembre 2008
Statut
Membre
Dernière intervention
14 janvier 2009
- 29 déc. 2008 à 09:55
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

Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
74
3
Merci
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
*/

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 185 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_coq
Messages postés
21
Date d'inscription
jeudi 11 décembre 2008
Statut
Membre
Dernière intervention
14 janvier 2009
0
Merci
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.
Commenter la réponse de djeje44800