IsDBNull ??? vb.net - C#/.NET managed - Programmation
Marsh Posté le 29-11-2002 à 17:23:11
If (ton champ) Is System.DBNull.Value Then...
Marsh Posté le 29-11-2002 à 17:35:23
non, ca fait toujours pareil...
pfff il est chiant ce vb.net parfois !
Marsh Posté le 29-11-2002 à 17:38:04
guilloo a écrit a écrit : non, ca fait toujours pareil... pfff il est chiant ce vb.net parfois ! |
comment ça, ça fait tjs pareil ?
j'ai utilisé cette classe des dizaines de fois dans un projet en C#, et ça a marché à chaque fois !!
regarde donc dans la doc du framework la classe DBNull du namespace System, tu verras....
Marsh Posté le 29-11-2002 à 17:56:59
bein oui mais dans mon cas ca ne marche pas...
pourtant des qu'il y a une valeur dans le champ de la base de donnée ca marche... mais bon le but c'est quand ce champ est vide !
voici la ligne qui est buggé:
If IsDBNull(dataset.table(Me.BindingContext(dataset, "table" ).Position).champ) Then
et la réponse que j'obtient:
Une exception non gérée du type 'System.Data.StrongTypingException' s'est produite dans appli.exe
Informations supplémentaires : Impossible d'obtenir la valeur, car elle est DBNull.
bizare qd meme...
Marsh Posté le 29-11-2002 à 17:59:29
euh... juste une question !
le type de ton champ, c'est un string ?
si oui, alors il faut faire
If (ton champ) = "" Then...
System.DBNull.Value ne marche que pour les champs numériques...
Marsh Posté le 29-11-2002 à 18:24:02
C'est effectivement un string mais normalement il y a aucun rapport (en vb6 isnull marchait très bien avec!) d'autant plus que j'ai essayé:
If dataset.table(Me.BindingContext(dataset, "table" ).Position).champ="" Then
et ca me donne toujours la réponse...
Marsh Posté le 29-11-2002 à 19:03:05
Bon j'ai pu résoudre mon problème en trouvant cette réponse :
"The exception is by design. You can't convert DBNull to a
string.
What do you want your function to return if the column
contains a null value? You could use the IsNull function on the
DataRow object to test for a Null value and avoid throwing the
exception.
There are a couple other options.
You can add attributes into your DataSet schema so the
strongly-typed DataSet class will automatically return a
particular value for the column when it contains DBNull. There's
a little bit of information on this in the documentation.
If you really have no use for null values in your database
or applications, you could mark the column in your database so it
does not support null values. Then mark the column in the
database and DataSet so its default value is an empty string."
J'ai testé en interdisant la valeur null et en mettant la valeur par défaut: "" ... ca marche et apparemment d'autres solutions me sont offertes... mais bon il est lourd ce vb.net...
En tout cas merci de m'avoir aidé, ca m'a permis d'aller sur de bonnes pistes !
Marsh Posté le 29-11-2002 à 17:10:54
voila je dois tester si une valeur dans une base de données est null ou pas en vb.net
Je remarque que la fonction isnull (vb6) a changé en IsDBNull pour vb.net .
bon ok mais quand je fais le test du genre :
IsDBNull(DataSet1.table(0).champ)
il me marque l'erreur: Impossible d'obtenir la valeur, car elle est DBNull.
C'est énorme car il me dit qu'elle est DBNull alors que c'est que je lui demande !!!
Remarque: quand la valeur n'est pas nule la fonction IsDBNull fonctionne bien et m'indique False....