DBNull

Le
djmcg
Bonjour,

En sélectionnant dans une listebox, j'affiche le détail des fiches dans
les textbox.
Tous va bien jusqu'à ce que un champ de la base de donnée soit vide et
là erreur :

La conversion du type 'DBNull' en type 'String' n'est pas valide.

Cette erreur ce déclenche bien quand un champ est vide

Je pense que je doit tester le champ de la base avant de l'afficher mais
comment ?

Si quelqu'un peut me donner une piste s'il vous plaît ?

Voici la ligne de code qui affiche dans les textbox :

txtMarchFour.Text = CStr(ObjetDataTable.Rows(RowNumber).Item("MarchFour"))

et cet exactement ce champ qui pose problème.

En créant la table manuellement,
j'ai veillé a laissé Null Interdit = NON

Voilà espérent votre aide. MERCI.

Jean-Marie.
PS. C'est avec Access 2000 que je travaille.
Si vos avez besoin de renseignement je vous les donne volontié.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vincent Poyo
Le #12262571
tout simplement en testant si ton champ est de type DBNull et dans ce cas
retourner une chaine vide.
à vérifier avec la doc, mais il me semble qu'il est possible au niveau d'un
dataset de mettre des valeurs par défaut et donc d'initialiser à chaine vide
les DBNull pour une colonne donnée

"djmcg" news:
Bonjour,

En sélectionnant dans une listebox, j'affiche le détail des fiches dans
les textbox.
Tous va bien jusqu'à ce que un champ de la base de donnée soit vide et là
erreur :

La conversion du type 'DBNull' en type 'String' n'est pas valide.

Cette erreur ce déclenche bien quand un champ est vide...

Je pense que je doit tester le champ de la base avant de l'afficher mais
comment ?

Si quelqu'un peut me donner une piste s'il vous plaît ?

Voici la ligne de code qui affiche dans les textbox :

txtMarchFour.Text = CStr(ObjetDataTable.Rows(RowNumber).Item("MarchFour"))

et cet exactement ce champ qui pose problème.

En créant la table manuellement,
j'ai veillé a laissé Null Interdit = NON

Voilà espérent votre aide. MERCI.

Jean-Marie.
PS. C'est avec Access 2000 que je travaille.
Si vos avez besoin de renseignement je vous les donne volontié.


djmcg
Le #12262561
Merci d'avoir pris la peine de répondre.
Comment je peux chercher dans le doc ?
En effet, je ne trouve sous le sujet dbnull.
Merci encore.
Jean-Marie


Vincent Poyo a écrit :
tout simplement en testant si ton champ est de type DBNull et dans ce
cas retourner une chaine vide.
à vérifier avec la doc, mais il me semble qu'il est possible au niveau
d'un dataset de mettre des valeurs par défaut et donc d'initialiser à
chaine vide les DBNull pour une colonne donnée

"djmcg" news:
Bonjour,

En sélectionnant dans une listebox, j'affiche le détail des fiches
dans les textbox.
Tous va bien jusqu'à ce que un champ de la base de donnée soit vide et
là erreur :

La conversion du type 'DBNull' en type 'String' n'est pas valide.

Cette erreur ce déclenche bien quand un champ est vide...

Je pense que je doit tester le champ de la base avant de l'afficher
mais comment ?

Si quelqu'un peut me donner une piste s'il vous plaît ?

Voici la ligne de code qui affiche dans les textbox :

txtMarchFour.Text =
CStr(ObjetDataTable.Rows(RowNumber).Item("MarchFour"))

et cet exactement ce champ qui pose problème.

En créant la table manuellement,
j'ai veillé a laissé Null Interdit = NON

Voilà espérent votre aide. MERCI.

Jean-Marie.
PS. C'est avec Access 2000 que je travaille.
Si vos avez besoin de renseignement je vous les donne volontié.





Hauwee
Le #12262551
Tu peux utiliser un truc du style :

If IsDBNull(ObjetDataTable.Rows(RowNumber).Item("MarchFour")) = True
Then
txtMarchFour.Text = "La valeur est nulle"
Else
txtMarchFour.Text CStr(ObjetDataTable.Rows(RowNumber).Item("MarchFour"))
End If
djmcg
Le #12262531
Merci pour l'exemple.
Je le test dès que possible.(je rentre tard ce soir)
C'est bizarre, je n'ai pas trouvé cette possibilité d'un champs vide
dans les doc.

Encore merci


Hauwee a écrit :
Tu peux utiliser un truc du style :

If IsDBNull(ObjetDataTable.Rows(RowNumber).Item("MarchFour")) = True
Then
txtMarchFour.Text = "La valeur est nulle"
Else
txtMarchFour.Text > CStr(ObjetDataTable.Rows(RowNumber).Item("MarchFour"))
End If



JO
Le #12262481
If Not MyDs.Tables(0).Rows(0).Item("Id_Client") Is System.DBNull.Value
Then
Id_Client = MyDs.Tables(0).Rows(0).Item("Id_Client")
Else
Id_Client = Nothing
End If
Publicité
Poster une réponse
Anonyme