2010-04-14 4 views
0
  c.Open() 
      r = x.ExecuteReader 
      If Not r("filename").IsDbnull Then 
       imagepath = "<img src='images/'" & getimage(r("filename")) & " border='0' align='absmiddle'" 

      End If 
      c.Close() 
      r.Close() 

J'ai également essayé;Quel est le problème avec cette vérification nulle pour le lecteur de données

If r("filename") Is DBNull.Value Then 
      imagepath = String.Empty 
     Else 
      imagepath = "<img src='images/'" & getimage(r("filename")) & " border='0' align='absmiddle'" 
     End If 
     c.Close() 
     r.Close() 

L'erreur est: Tentative non valide de lecture lorsqu'aucune donnée n'est présente.

L'idée de mon code est de construire une chaîne img src uniquement lorsque des données sont disponibles.

Aide grandement appréciée.

Merci

Répondre

2

Vous devez appeler la méthode Read sur votre SqlDataReader avant que les données est disponible pour la lecture.

r = x.ExecuteReader 
r.Read() 
0

La méthode Read doit être appelé en premier.

If r.Read() AndAlso Not r("filename").IsDbnull Then ... 
0

S'il y a 0 lignes dans la DataReader après exécution de la requête, il n'y aura pas de champs du tout, donc vous ne pouvez pas les comparer à null.

Vous pouvez vérifier avec if r.HasRows then //got data ...

Questions connexes