none
Enregistrement des données et chaîne vide RRS feed

  • Question

  • Bonjour,

    j'ai une base de données access avec une table appelée "Notes" composées de 4 champs (numéro (auto incrément et null interdit), titre, date, contenu (ces 3 derniers avec null autorisé)).

    Lorsque je fais glisser les champs en mode détail de l'onglet source de données sur un nouveau formulaire, les 4 labels et textbox apparaissent bien avec le bindingnavigator ainsi que le bouton enregistrement. Les lignes suivantes sont également bien ajoutées dans l'évènement click du bouton enregistrement :

    Me.Validate()

    Me.NotesBindingSource.EndEdit()

    Me.NotesTableAdapter.Update(Me.monDataSet.Notes)

    Je peux alors parcourir les différents enregistrements. Mais si je veux supprimer par exemple le texte du champ "contenu" d'un enregistrement et que je veux sauvegarder, j'obtiens l'exception suivante :

    Le champ 'Notes.Contenu' ne peut pas être une chaîne vide.

    Alors que j'ai bien vérifié que la valeur null est autorisée pour ce champ. Nota: c'est également valable pour les autres champ, excepté le champ numéro)

    En regardant dans la doc, j'ai trouvé dans la fiche "Dépannage des exceptions : System.Data.NoNullAllowedException" une explication qui indique qu'il est nécessaire qu'un champ qui n'autorise pas les valeurs null soit sélectionné dans l'assistant formulaire de données. Ce qui, a-priori, est mon cas puisque le champ numéro n'autorise pas les valeurs nulles et qu'il est bien sur le formulaire.

    J'ai ensuite essayé différentes manières de contourner ce problème (en essayant les valeurs dbnull, nothing, rien...) mais je ne peux rien enregistrer lorsque je supprime le contenu d'un champ. J'ai également regardé dans les différentes kb et rien trouvé sur ce point.

    Le palliatif que j'ai trouvé est de tester le textbox.text de chaque champ et s'il est égal à "", de le remplacer par " ", ce qui n'est pas glorieux.

    Est-ce que quelqu'un aurait déjà rencontré ce problème et pourrait m'aider ? Merci beaucoup d'avance

    Oliver

     

    lundi 12 mars 2007 13:18

Toutes les réponses