La suppression d'un enregistrement

Résolu
bouchrot Messages postés 394 Statut Membre -  
bouchrot Messages postés 394 Statut Membre -
Bonjour,

salut j'ai réussis a supprimer une ligne de datagridview mais je veux que cette soit aussi supprimer de la base de donnée sachant qu'ils sont reliées
merci d'avance

5 réponses

  1. Kalissi Messages postés 221 Statut Membre 20
     
    Bonjour,

    Relier de quelle façon ?

    Normalement, avant du supprimer une ligne d'un DGV tu devrais en capturer toutes les informations afin d'obtenir les informations dont une clé d'index.

    par la suite tu peux supprimer dans ta BD avec quelque chose comme ceci :


    Public Function SupprimerEntite(ByVal Indice As string) As Int32

    Dim ObjRet As Int32 = 0
    Dim ReqSQL As String = _
    "DELETE (" & NomTable & "." & cleIndex & ")" & _
    " FROM (" & NomTable & ")" & _
    " WHERE (((" & _
    NomTable & "." & cleindex & ")=" & """" & _
    Indice & """" & "));"

    Try
    Connexion.ConnectionString = "Provider=Microsoft.Jet.OleDB.4.0;" & "Data Source= " & "C:\MaBd.mdb" & ";"
    Connexion.Open()

    Dim cmd As New OleDbCommand("TableVideo", Connexion)

    cmd.CommandText = reqSQL
    ObjRet = cmd.ExecuteNonQuery()

    Catch ex As Exception
    MsgBox (ex.ToString)
    Finally
    Connexion.Close
    End Try

    Return ObjRet

    End Function

    K
    0
  2. bouchrot Messages postés 394 Statut Membre 6
     
    merci kalissi pour votre réponse
    je sais comment faire le supression de la base de donnée mais cette fois je veux supprimer une ligne de la datagrid au même temps elle doit être supprimer de la base de donnée ,j'ai fait une recherche et j'ai trouvé ça

    Dim drv As DataRowView = CType(DataGridView1.CurrentRow.DataBoundItem, DataRowView)
    drv.Row.Delete()

    ça supprime une ligne de la datagrid , mais n'ont pas de la base de donnée
    0
  3. bouchrot Messages postés 394 Statut Membre 6
     
    voilà ce que j'ai j'ai fait mais ça pas marcher

    Dim drv As DataRowView = CType(DataGridView1.CurrentRow.DataBoundItem, DataRowView)
    Dim valeur As Object = drv("?????")
    drv.Row.Delete()
    cmd.CommandType = CommandType.Text
    cmd.CommandText = "delete from ?????? where ????? = '" & valeur & "'"
    cmd.Connection = cn
    cmd.ExecuteNonQuery()
    MsgBox("réussis")
    0
  4. Kalissi Messages postés 221 Statut Membre 20
     
    Bonjour,

    Utiliser DirectCast plutôt que CType , CType étant une instruction de VB2005.

    Dim drv As DataRowView = DirectCast(DataGridView1.CurrentRow.DataBoundItem, DataRowView)

    Choisir l'index de la table (la clé primaire), ou un élément unique de la table,
    ou X représente cet élément.


    Dim valeur As String = drv.Column(X).value

    Dim Valeur As Int32 = drv.Column(X).value

    drv.Row.Delete()

    Connexion.ConnectionString = "Provider=Microsoft.Jet.OleDB.4.0;" & "Data Source= " & "C:\MaBd.mdb" & ";"
    Connexion.Open()

    Dim cmd As New OleDbCommand("NomTable", Connexion)

    ' Ici NumeroCode correspond à la clé unique (clé primaire) de la table
    ' Personnellement, je n'utilise pas de clé primaire sous acces lorsque je crée
    ' ma table, mais j'ai quand même une clé unique.

    Dim ReqSQL As String = _
    "DELETE (" & NomTable & "." & NumeroCode & ")" & _
    " FROM (" & NomTable & ")" & _
    " WHERE (((" & _
    NomTable & "." & MediaNumeroCode & ")=" & """" & _
    Valeur & """" & "));"

    cmd.CommandText = reqSQL

    cmd.Connection = cn
    cmd.ExecuteNonQuery()

    ' Ici tu peux capturer le résultat

    Dim Indice as Int32 = cmd.ExecuteNonQuery()

    Connexion.Close

    MsgBox("réussis")


    K
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. bouchrot Messages postés 394 Statut Membre 6
     
    c bon j'ai résolu mon problème merci a tous
    0