Probleme : l'exception nullreferenceexception n'a pas eté gerée avec la m'ethode

betaji Messages postés 2 Date d'inscription mardi 8 février 2011 Statut Membre Dernière intervention 14 mars 2011 - 14 mars 2011 à 08:57
betaji Messages postés 2 Date d'inscription mardi 8 février 2011 Statut Membre Dernière intervention 14 mars 2011 - 14 mars 2011 à 12:05
Bonjour voici mon code et avec mon problème :

Imports System.Data
Imports System.Data.SqlClient
Public Class Regler_udt
Dim Connexion As String
Dim ConnexionSQL As SqlConnection = New SqlConnection()
Dim da As SqlDataAdapter
Dim ds As New DataSet
Dim dv As DataView
Dim cb As SqlCommandBuilder
Dim dtt As DataTable
Dim dtr As DataRow

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim verifi As Boolean
Dim Annee As String
Annee = InputBox("Entrer une nouvelle année", "Nouvelle année", "Entrer l'année")

MessageBox.Show("L'Année à bien eté enregistrée")
Dim MyConnexion As SqlConnection = New SqlConnection(****)// connexion à la base de donnée avec le chemin adequat
Dim Mycommand1 As SqlCommand = MyConnexion.CreateCommand()
Mycommand1.CommandText = " select annee_udt_mois from UDT_mois where annee_udt_mois='" & Annee & "'"
MyConnexion.Open()
verifi = True
Dim myReader As SqlDataReader = Mycommand1.ExecuteReader()
If (myReader.HasRows) Then
MsgBox("L'année existe éjà")
Annee = ""
verifi = False
Else
dtr = ds.Tables("UDT_mois").NewRow()// Voila mon erreur : l'exception nullreferenceexception n'a pas eté gerée je ne comprend pas car mon dtr reste sur nothing alors que je le déclare.
dtr("annee_udt_mois") = Annee
dtr("valeur_udt_mois") = 0

'ajout de la ligne dans le DataSet
ds.Tables("UDT_mois").Rows.Add(dtr)
'création et exécution du commandbuilder pour mettre à jour le DataAdapter
cb = New SqlCommandBuilder(da)
'mise à jour des données du dataadapter(dta) à partir du commandbuilder (cmdb)
da.Update(ds, "UDT_mois")
'on vide le dataset pour le recréer avec les nouvelles données
ds.Clear()
da.Fill(ds, "UDT_mois")
dtt = ds.Tables("UDT_mois")

End If
myReader.Close()
MyConnexion.Close()
End Sub

J'ai beaucoup regardé sur les forums pour la solution mais je ne comprend pas le problème car dans les bouquin , dans les cours normalement ce code doit marcher avec la methode newrow ...
Merci de m'aider
Cordialement

2 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
14 mars 2011 à 09:21
Nullement part tu charge le ds avec les données de ta base de données,il est vide, il ne peut donc pas contenir une hypothétique table "UDT_mois". Il semble par conséquent logique que tu es une erreur quand tu essaye d'y ajouter une ligne.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
betaji Messages postés 2 Date d'inscription mardi 8 février 2011 Statut Membre Dernière intervention 14 mars 2011
14 mars 2011 à 12:05
Comment pourrais-je faire pour y remédier?
0
Rejoignez-nous