J'essaie de supprimer une ligne dans la base de données avec GetDeleteCommand() et DataAdapter.Update(). Avec GetInsertCommand() et GetUpdateCommand() toutes les transactions fonctionnent, mais avec GetDeleteCommand() échoue, je veux dire, "exécuter" sur cette instruction mais les données restent dans la table.getdeletecommand ne supprime rien
voici mon code:
Public Function delete(ByVal tabla As String, ByVal arg As VariantType) As Boolean
Dim ok As Boolean = False
Dim dataSet As DataSet = New DataSet(tabla)
Dim dataRow As DataRow
Dim dataTable As DataTable
Me.sqlComm.Connection = Me.sqlConn
Me.sqlComm.CommandText = "Select * from " & tabla
Try
Me.sqlDA.SelectCommand = Me.sqlComm
'llenar el dataset con los datos de la consulta
Me.sqlDA.MissingSchemaAction = MissingSchemaAction.AddWithKey
Me.sqlDA.Fill(dataSet, tabla)
'nuevo commandbuilder
Me.sqlCB = New SqlCommandBuilder(Me.sqlDA)
'crear el buffer de la tabla
dataTable = dataSet.Tables(tabla)
'buscar el valor en la tabla
dataRow = dataTable.Rows.Find(arg)
'obtener el delete command
Me.sqlDA.DeleteCommand = Me.sqlCB.GetDeleteCommand(True)
'actualizar los registros.
'se supone q con el DeleteCommand deberia borrar en este punto el dato
Me.sqlDA.Update(dataSet, tabla)
ok = True
Catch ex As Exception
Console.WriteLine(ex.StackTrace.ToString() & vbCrLf & ex.Message())
Me.err = ex.StackTrace.ToString() & vbCrLf & ex.Message()
End Try
Me.sqlConn.Close()
Return ok
End Function
comme dit précédemment, le tout code exécuté sans erreur, mais les données trouvées et « supprimé » de mon code restent encore dans le tableau.
Qu'est-ce qui ne va pas? ou comment faire une commande correcte ou comment faire cela fonctionne?
merci
ouais ... c'est vrai, mais la commande sqlcommand.getdelet ne serait pas nécessaire en utilisant datarow.delete() –