L'exception NullReferenceException n'a pas été gérée

coulibalysy Messages postés 12 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 6 février 2009 - 1 févr. 2009 à 12:48
NHenry Messages postés 15155 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 septembre 2024 - 7 févr. 2009 à 23:51
Je suis débutant SVP
Je développe en VB.net 2008 Express avec un Framework 3.5
Mon Problème est le suivant:
Lorsque je veux enrégistrer des données saisies, j'ai l'exception suivante qui s'affiche:L'exception NullReferenceException n'a pas été gérée.
Une partie du PRG qui pose problème dès la première ligne avec dtr("nom")=Me.nom.Text

  'crátion d'une nouvelle ligne avec les données des textbox
   dtr("nom") = Me.Nom.Text
   dtr("prénom") = Me.Prénoms.Text
   dtr("Lieu de Naissance") = Me.LieuNais.Text
csy

8 réponses

NHenry Messages postés 15155 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 septembre 2024 159
1 févr. 2009 à 21:50
Bonjour,

Quelle est la valeur de dtr ?

0
coulibalysy Messages postés 12 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 6 février 2009
3 févr. 2009 à 09:03
 Private dtr As DataRow
Merci pour votre sollicitude
csy
0
NHenry Messages postés 15155 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 septembre 2024 159
3 févr. 2009 à 20:28
Bonjour,

J'ai demandé sa valeur quand tu exécute ces lignes, pas sa déclaration .
Sur la config clavier type VB : Shift+F9 .

0
coulibalysy Messages postés 12 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 6 février 2009
3 févr. 2009 à 23:39
 Voila une partie du code

Private dta As OleDbDataAdapter

 'récupération de la ligne dans le datarow
        dtr = dts.Tables("Étudiants").Rows(rownum)
'modification des donées

        dtr("nom") = Me.Nom.Text
        dtr("prénom") = Me.Prénoms.Text
        dtr("Lieu de Naissance") = Me.LieuNais.Text
        dtr("Téléphone personnel") = Me.TélPersonnel.Text
        dtr("Téléphone professionnel") = Me.TélProfessionnel.Text
        dtr("Téléphone mobile") = Me.TelMobile.Text
        dtr("Page Web") = Me.Mail.Text
        dtr("Numéro de télécopie") = Me.Télécopie.Text
        dtr("Adresse") = Me.Adresse.Text
        dtr("Ville") = Me.Ville.Text
        dtr("Code Postal") = Me.CP.Text
        dtr("Département") = Me.Departement.Text
        dtr("Remarques") = Me.Remarque.Text
        dtr("ID étudiant") = Me.IDEtudiant.Text
        dtr("Date Inscription") = Me.DateInscription.Text
        dtr("N°Inscription") = Me.NumInscription.Text
        dtr("Heure Inscription") = Me.Hinscription.Text

  'création et exécution du commandbuilder
        'pour mettre à jour le DataAdapter
        cmdb = New OleDbCommandBuilder(dta)

        'mise à jour des données du DataAdapter
        'à partir du commandbuilder
        dta.Update(dts, "Étudiants")

        'on vide le dataset pour le recréer avec
        'les nouvelles données
        dts.Clear()
        dta.Fill(dts, "Étudiants")
        dtt = dts.Tables("Étudiants")

        'mise à jour du datagrid
        DataGridView1.DataSource = dtt

        'retour au début du fichier
        rownum = 0

        'affichage des données dans les texbox
csy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coulibalysy Messages postés 12 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 6 février 2009
3 févr. 2009 à 23:39
 Voila une partie du code

Private dta As OleDbDataAdapter

 'récupération de la ligne dans le datarow
        dtr = dts.Tables("Étudiants").Rows(rownum)
'modification des donées

        dtr("nom") = Me.Nom.Text
        dtr("prénom") = Me.Prénoms.Text
        dtr("Lieu de Naissance") = Me.LieuNais.Text
        dtr("Téléphone personnel") = Me.TélPersonnel.Text
        dtr("Téléphone professionnel") = Me.TélProfessionnel.Text
        dtr("Téléphone mobile") = Me.TelMobile.Text
        dtr("Page Web") = Me.Mail.Text
        dtr("Numéro de télécopie") = Me.Télécopie.Text
        dtr("Adresse") = Me.Adresse.Text
        dtr("Ville") = Me.Ville.Text
        dtr("Code Postal") = Me.CP.Text
        dtr("Département") = Me.Departement.Text
        dtr("Remarques") = Me.Remarque.Text
        dtr("ID étudiant") = Me.IDEtudiant.Text
        dtr("Date Inscription") = Me.DateInscription.Text
        dtr("N°Inscription") = Me.NumInscription.Text
        dtr("Heure Inscription") = Me.Hinscription.Text

  'création et exécution du commandbuilder
        'pour mettre à jour le DataAdapter
        cmdb = New OleDbCommandBuilder(dta)

        'mise à jour des données du DataAdapter
        'à partir du commandbuilder
        dta.Update(dts, "Étudiants")

        'on vide le dataset pour le recréer avec
        'les nouvelles données
        dts.Clear()
        dta.Fill(dts, "Étudiants")
        dtt = dts.Tables("Étudiants")

        'mise à jour du datagrid
        DataGridView1.DataSource = dtt

        'retour au début du fichier
        rownum = 0

        'affichage des données dans les texbox
csy
0
NHenry Messages postés 15155 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 septembre 2024 159
5 févr. 2009 à 22:19
Bonjour,

Quelle est la valeur de DTS ? Nothing ?

Regarde la valeur de tes variables sur l(les) ligne(s) incriminée(s).

0
coulibalysy Messages postés 12 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 6 février 2009
6 févr. 2009 à 19:14
dts est un dataset et le champ nom est déclaré dans la base access comme texte.
Ce que je ne comprends pas tout marche bien pour l'affichage correctement.
En plus j'ai essayé la solution suivante mais ça ne marche pas.et lorsque je marque un pont d'arrêt sur dtr("Nom").Me.Nom.Text, j'ai l'information suivante dtr Nothing. Pourtant il est déclaré tout au debut de la manière suivante:
Private dta As OleDbDataAdapter
 Private cmdb As OleDbCommandBuilder
    Private dts As New DataSet
    Private dtt As DataTable
    Private dtc As DataColumn
    Private dtr As DataRow
    Private rownum As Integer

'crátion d'une nouvelle ligne avec les données des textbox
 
IfMe.Nom.TextIsNothingThen
dtr("Nom") = String.Empty
Else
dtr("Nom") = Me.Nom.Text
EndIf
 
'ajout de la ligne dans le DataSet
dts.Tables("Etudiants").Rows.Add(dtr)
 
'création et exécution du commandbuilder
'pour mettre à jour le DataAdapter
cmdb = New OleDbCommandBuilder(dta)
 
'mise à jour des données du DataAdapter
'à partir du commandbuilder
dta.Update(dts, "Etudiants")
 
'on vide le dataset pour le recréer avec
'les nouvelles données
dts.Clear()
dta.Fill(dts, "Etudiants")
dtt = dts.Tables("Etudiants")
 
'mise à jour de la datagrid
DataGridView1.DataSource = dtt
 
'aller au début du fichier
rownum = 0

csy
0
NHenry Messages postés 15155 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 septembre 2024 159
7 févr. 2009 à 23:51
Bonjour,

Je voulais parler de DTR.
L'exception te dit que tu as une référence à Nothing, à toi de la trouver. (regarde la valeur des variables).

0
Rejoignez-nous