bonjour à tous!

Je commence à coder en mode non connecté. Lorsque je regarde les tutoriels et les livres sur ADO.NET non connecté et la commande UPDATE je vois toujours du code pour une table qui a une clé unique, ou PK si vous aimez mieux.

J'ai réussi à afficher des infos avec le dataset, dataAdapter et le IEnumerator. Tout va bien pour celà.

Ou je commence à m'arracher les cheveux c'est lorsque je dois modifier un enregistrement UNIQUE dans une table sans PK

J'ai essayé du code, mais j'ai l'impression que c'est impossible en mode non connecté........


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
 
        Dim strCon$ = CStr("provider=microsoft.jet.oledb.4.0;" & "data source= " & Chemin_Acces_BD & "\" & "BDAccess.mdb;")
        Cn = New OleDb.OleDbConnection(strCon)
 
        Cn.ConnectionString = strCon
        Cn.Open()
        CmdR = Cn.CreateCommand() 'Creation de commande
        CmdR.CommandText = "select Nom_Admin, Passwd_Admin from admin WHERE Nom_admin = '" & Me.Txt_Nom_Admin.Text.ToString & "'" ' Creation de la requete SQL"
        Try
            ' Extraire l'enregistrement courant
            DtSet = New DataSet
            DtAdapteur = New OleDb.OleDbDataAdapter
            DtAdapteur.SelectCommand = CmdR
            DtSet.Tables("admin").Rows(0).BeginEdit() ' ca plante ici!!!!
            DtRow = DtSet.Tables("admin").Rows(0)
            'Modifier les valeurs des champs en  récupérant le contenu des TextBox
            DtRow("nom_admin") = Me.Txt_new_UserName_Admin.Text
            DtRow("passwd_admin") = Me.Txt_Confirmation_New_PassAdmin.Text
            'Pour modifier les valeurs changées dans le DataAdapter
            cmdBuilder = New OleDb.OleDbCommandBuilder(DtAdapteur)
            'Mise à jour
            DtAdapteur.Update(DtSet, "Admin")
            Cn = Nothing
            CmdR = Nothing
            DtAdapteur = Nothing
            'Objet déconnectée
            DtSet = Nothing
            DtTable = Nothing
            DtRow = Nothing
 
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Information)
            Cn = Nothing
            CmdR = Nothing
            DtAdapteur = Nothing
            'Objet déconnectée
            DtSet = Nothing
            DtTable = Nothing
            DtRow = Nothing
 
        End Try
        Cn = Nothing
        CmdR = Nothing
        DtAdapteur = Nothing
        'Objet déconnectée
        DtSet = Nothing
        DtTable = Nothing
        DtRow = Nothing
Comme vous voyez dans le code j'ai rajouté un commentaire dans le code afin de vous indiquez à quel endroit que ça plante.

L'erreur est la suivante :
La référence d'objet n'est pas définie à une instance d'objet
Si vous pouvez m'aidez à comprendre ce qui se passe, ça serait très apprécié.

Merci!

AngelEvil