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

Signaler
Messages postés
12
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
6 février 2009
-
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
-
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

Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
Bonjour,

Quelle est la valeur de dtr ?

Messages postés
12
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
6 février 2009

 Private dtr As DataRow
Merci pour votre sollicitude
csy
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
Bonjour,

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

Messages postés
12
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
6 février 2009

 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
Messages postés
12
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
6 février 2009

 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
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
Bonjour,

Quelle est la valeur de DTS ? Nothing ?

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

Messages postés
12
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
6 février 2009

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
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
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).