bonjour,

J'ai une application vb net avec une base de donnée.
Au chargement du formulaire une requete affiche les enregistrements de la base dans une listView.

Quand je clique sur un bouton un événement doit pouvoir supprimer la ligne sélectionnée de la listView. J'ai donc ecrit ceci:
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
Dim maConnexion As OleDbConnection
        Dim maCommande As OleDbCommand
        Dim strConnect As String
        Dim strSql As String
        Dim enr1 As OleDbDataReader
 
        Dim dat As Date
        Dim nom As String
        Dim num As Integer
 
        num = txt_num.Text
        nom = txt_nom2.Text
        MT = txt_MT.Text
        reg = txt_Regle.Text
        dat = txt_date.Text
 
        Try
            strConnect = "Provider='Microsoft.Jet.OLEDB.4.0';Data Source='C:\Documents and Settings\fdefrocourt\Bureau\Caisse\bdd_agroform.mdb';User ID=Admin;Password=;"
            maConnexion = New OleDbConnection(strConnect)
            strSql = "SELECT numEncD, nomSalD, MTEncD, RegleD, dateEncD FROM EncaissementDetail"
            'Creation de l'objet contenant la req puis ouverture de la bdd
            maCommande = New OleDbCommand(strSql, maConnexion)
            maConnexion.Open()
            'execution de la requete
            enr1 = maCommande.ExecuteReader()
 
            While (enr1.Read() = True)
                If enr1("numEncD") = num Then
                    strSql = "DELETE FROM EncaissementDetail WHERE nomSalD= '" & nom & "'"
                    'Creation de l'objet contenant la req puis ouverture de la bdd
                    maCommande = New OleDbCommand(strSql, maConnexion)
                    'execution de la requete
                    maCommande.ExecuteNonQuery()
                End If
            End While
 
            MsgBox("Encaissement supprimé")
            maConnexion.Close()
Mais dans la base il peut y avoir plusieurs fois le même nom et cette requete me supprime tous les enregistrements avec le même nom
J'ai donc essaié:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
While (enr1.Read() = True)
                If enr1("numEncD") = num Then
                    strSql = "DELETE FROM EncaissementDetail WHERE numEncD= '" & num & "'"
                    'Creation de l'objet contenant la req puis ouverture de la bdd
                    maCommande = New OleDbCommand(strSql, maConnexion)
                    'execution de la requete
                    maCommande.ExecuteNonQuery()
                End If
            End While
Mais j'ai une erreur: type de donnée incompatible.

Pourquoi?

Pouvez vous m'aider ?