djeje44800
Messages postés21Date d'inscriptionjeudi 11 décembre 2008StatutMembreDernière intervention14 janvier 2009
-
29 déc. 2008 à 09:23
djeje44800
Messages postés21Date d'inscriptionjeudi 11 décembre 2008StatutMembreDernière intervention14 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 & "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 " & Label1.Text
Dim prenom As SqlCeCommand = New SqlCeCommand(pren, CnxDb2)
TextBox2.Text = prenom.ExecuteScalar.ToString
Catch ex As IO.FileNotFoundException
MsgBox(ex.Message & "erreur")
End Try
End Sub
End Class
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 29 déc. 2008 à 09:51
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.
djeje44800
Messages postés21Date d'inscriptionjeudi 11 décembre 2008StatutMembreDernière intervention14 janvier 2009 29 déc. 2008 à 09:55
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.