Comment vérifier une valeur nulle dans VB.NET
J'ai ceci:
If String.IsNullOrEmpty(editTransactionRow.pay_id.ToString()) = False Then
stTransactionPaymentID = editTransactionRow.pay_id 'Check for null value
End If
Maintenant, quand editTransactionRow.pay_id
est Null Visual Basic génère une exception. Est-il quelque chose de mal avec ce code?
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez un fortement dataset typé, alors vous devriez faire ceci:
Vous obtenez l'erreur, car une fortement typées ensemble de données récupère la valeur sous-jacente et expose la conversion à travers la propriété. Par exemple, ici, c'est essentiellement ce qui se passe:
La méthode GetValue est de retour DBNull qui ne peuvent pas être convertis à un court-circuit.
L'équivalent de
null
en VB estNothing
donc votre chèque veut être:Ou peut-être, si vous êtes réellement désireux de vérifier pour une valeur SQL null:
editTransactionRow.pay_id est Nulle donc en fait vous êtes en train de faire: null.ToString() et ne peut être exécutée. Vous devez vérifier editTransactionRow.pay_id et pas editTransactionRow.pay_id.ToString();
Vous code doit être (SI pay_id est une chaîne de caractères):
Si pay_id est un Entier que vous pouvez simplement vérifier si elle est null normalement sans Chaîne...
Edit pour vous montrer si ce n'est pas une Chaîne de caractères:
Si c'est à partir d'une base de données vous pouvez utiliser IsDBNull mais si pas, ne l'utilisez pas.
Vous pouvez également utiliser le IsDBNull fonction:
Ne pas utiliser
= Nothing
ouIs Nothing
parce qu'il ne parvient pas à vérifier si le datarow valeur est null ou pas. J'ai essayé, et j'ai assurez-vous que le code ci-dessus a travaillé.J'ai trouver le moyen le plus sûr est
Il peut lire terriblement, mais l'ISIL est en fait très différente de IsNot Rien, et il n'a pas d'essayer et d'évaluer l'expression, ce qui pourrait donner une référence nulle exception.
Que vous devez vérifier pour s'assurer editTransactionRow n'est pas null et pay_id n'est pas null.
C'est la réponse exacte. Essayez ce code: