Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

DBNull

5 réponses
Avatar
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é.

5 réponses

Avatar
Vincent Poyo
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" a écrit dans le message de
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é.


Avatar
djmcg
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" a écrit dans le message de
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é.





Avatar
Hauwee
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
Avatar
djmcg
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



Avatar
JO
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