DataReader et Requete DELETE
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:
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:
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 ?