Probléme datagridview + base de donnée

Signaler
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013
-
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
-
Salut ,
j'ai un petit problème quand je veux ajouter un enregistrement de ma datagridview dans la base de donnée il me donne l'erreur suivante (cannot set column 'num_article'to be null. please use dbnull instead. voila mon code :
 
     
        Dim row As New DataGridViewRow
        For Each row In Me.DataGridView1.Rows
  Dim dr As DataRow = ds.Tables("article").NewRow
            dr("num_article") = row.Cells(0).Value
            dr("designation") = row.Cells(1).Value
            dr("unite") = row.Cells(2).Value
            dr("qte") = row.Cells(3).Value
            dr("pu") = row.Cells(4).Value
            dr("num_contrat") = numcontrat.Text
            ds.Tables("article").Rows.Add(dr)
            Dim Cbuilder As New SqlCommandBuilder(da)
            Dim s As String = Cbuilder.GetInsertCommand.CommandText
            da.Update(ds.Tables("article").Select("", "", DataViewRowState.Added))
        Next row

Merci d'avance.

12 réponses

Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Bonjour,

Tout simplement parce que la valeur que tu essaies d'assigner à num_article, c'est à dire le contenu de row.Cells(0).Value est nulle.

Dans la définition de ta table, donne-lui une valeur par défaut ou fais lui accepter les valeurs nulles.


Calade
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

Et comment je peux lui faire accepter les valeurs nulles?
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Si tu as les droits d'admin sur ta base de données, il faut que tu ailles dans la définition de ta table. Tu as une colonne "Null Accepté".

Sinon tu demandes à ton administrateur de le faire pour toi.

Calade
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

La colonne 'num_article' est une clés primaire de la table article donc il ne peut pas accepter les valeurs null
et en plus j'ajoute pas de valeur null a cette colonne
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Dans ce cas, effectivement une valeur Null n'est pas acceptée.

Mets un point d'arrêt sur la ligne
dr("num_article") = row.Cells(0).Value

et vérifier la valeur de ta cellule, elle devrait être nulle.


Calade
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

j'ai fais ce que tu viens de me dire , elle n'est pas nulle
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Comment as-tu vérifié, fais un
debug.print row.Cells(0).Value quand tu es sur cette ligne.


Calade
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

J'ai fais
debug.print(dr(0)=row.cells(0).value )
Il a marqué ce message : operator'=' is not defined for type 'dbnull' and string "55"
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
C'est pas ça que je t'avais dit, mais je n'ai peut-être pas été assez clair.

Une fois sur le point d'arret, va dans le panneau exécution (si tu ne l'a pas, Menu Affiche/Panneau d'exécution)

et tapes ? row.Cells(0).Value (sans rien ajouter d'autre.

Ceci dit ton message laisserait entendre que ta cellule est bel et bien nulle !


Calade
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

je trouve pas panneau d’exécution
de quel menu tu parle ?
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

je trouve pas panneau d'exécution
de quel menu tu parle ?
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Menu Affichage/Fenêtre d'Exécution ou CTRL + G en raccourci.


Calade