ASP.NET VB - Conversion de type DBNull de type 'String' n'est pas valide
J'ai le texte suivant ASP.NET (VB) code:
strLocation = CStr(q1("LocationName")) + " " + CStr(q1("LocationAddress")) + " " + CStr(q1("LocationCity"))
Comme LocationCity est nulle:
- Je obtenir la Conversion de type DBNull de type 'String' n'est pas valide.
Est-il un moyen de résoudre ce problème.
Si seulement c'était LocationCity je serais probablement faire quelque chose comme:
If IsDBNull(q1("LocationCity")) Then
strLocation = ""
Else
strLocation = CStr(q1("LocationCity"))
End If
J'ai aussi essayé:
strLocation = If(CStr(q1("LocationName")), "") + " " + If(CStr(q1("LocationAddress")), "") + " " + If(CStr(q1("LocationCity")), "")
mais il a obtenu le même résultat
En C# je voudrais l'utiliser normalement ?? mais pas sûr de la meilleure approche dans le ASP.NET VB
Ce qui s'est vraiment passé? Êtes-vous à la déclaration d'autres dans votre instruction if et une exception est levée? Quel est le débogueur vous dire? Si vous cochez la case est-il vraiment dbnull? La Base de données et le fournisseur de services que vous utilisez?
OriginalL'auteur Nate Pet | 2012-08-06
Vous devez vous connecter pour publier un commentaire.
L'équivalent du C#
??
dans VB.NET est le SI l'OpérateurNe pas utiliser le Fonction IIF car c'est déconseillé, ne prend pas en charge le court-circuit et n'est pas sécurisé.
Voir aussi Est-il VB.NET l'équivalent en C#?? opérateur? pour des informations connexes
OriginalL'auteur Matt Wilko
Vous pouvez utiliser
If(IsDBNull(q1("propertyName")), "", CStr(q1("propertyName")))
Ou vous pourriez mettre en œuvre le bloc de code que vous a montré que d'une méthode et d'appeler cette méthode pour chaque propriété. OMI, il serait faire de votre ligne de code beaucoup plus propre qu'à l'aide de 3 IIF états
IIF
exécute à la fois le "vrai" et "faux" paramètres", et, par conséquent, cette partie de votre réponse ne serait pas de travailOriginalL'auteur Jimmy