Datensatz aus Tabelle in Datagridview per button löschen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Datensatz aus Tabelle in Datagridview per button löschen

    Hallo ,

    ich habe 2 Probleme :

    1. Versuche eine Zeile in einer Tabelle zu löschen indem man die Zeile im DatagridView anklickt und dann über den Button "Löschen" die Zeile löscht.
    Würde gerne das ganze mit dem Delete-Befehl lösen.

    2. Wie kann ich die einzelnen Einträge der Tabelle ändern?? Habe es bisjetzt so probiert

    VB.NET-Quellcode

    1. DataGridView2.BeginEdit(True)

    Jedoch wird der Eintrag nicht in der MySQL Db verändert.

    Gruß

    VB.NET-Quellcode

    1. Private Sub button_löschen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button_löschen.Click
    2. Dim cmd6 As String
    3. Dim con As New MySqlConnection
    4. Dim cmd As New MySqlCommand
    5. Dim ConnectionString As String
    6. Dim adapter As MySqlDataAdapter
    7. Dim table As DataTable
    8. MsgBox(Me.DataGridView2.Item(7, DataGridView2.CurrentRow.Index).Value)
    9. If MsgBox("Wollen Sie wirklich den ausgewählte Datensatz löschen?", MsgBoxStyle.YesNo, "Datensatz löschen?") = MsgBoxResult.Yes Then
    10. ConnectionString = strConnect
    11. cmd6 = "DELETE * FROM Tabelle1 WHERE id = '" & DataGridView2.[????] & " "
    12. adapter = New MySqlDataAdapter(cmd6, ConnectionString)
    13. table = New Data.DataTable
    14. Else
    15. Exit Sub
    16. End If


    das is mein Code bisjetzt . Versuche das ganze über eine SQL Anweisung zu löschen. Habe aber momentan kein plan wies weitergeht und in der Firma kann mir momentan auch keiner helfen :(
    es ist unsinnig, eine SpeichernRoutine für den DELETE eines einzelnen Datensatzes einer Tabelle zu schreiben, weil du eh eine Speicher-Routine benötigst, die alle Änderungen (INSERTs, DELETEs, UPDATEs) aller Datensätze aller Tabellen in einem Aufwasch abspeichert.

    Oder kann man das anders sehen?


    wie funktioniert das ??
    Für Einsteiger empfehle ich dringend, die Datenbank erstmal wegzulassen.
    Das Dataset verfügt nämlich bereits über die oben angesprochene Super-Routine:

    VB.NET-Quellcode

    1. myDataset.WriteXml("C:\Bla\Data.xml")
    gugge DB-Programmierung ohne Datenbank
    Das problem ist, dass ich die Aufgaben in der Firma so gestellt bekomme und sie lösen muss. Kann mir leider nicht aussuchen mit was ich beginne :(

    Das Löschen soll ich auch über den SQL Befehl machen . Ich weiß da aber leider nicht mehr weiter. Ich bräuchte ein Beispiel oder sowas...

    vorallem wie das mit der Speicher-Routine funktioniert...


    lg
    Ich bin immer wieder erschüttert über die Inkompetenz von Leuten, die Aufgaben stellen.

    Also hast du nun als Anfänger das Vergnügen, gleich anfangs eine Super-Speicher-Routine zu schreiben, die alle Änderungen aller Tabellen fehlerfrei in die DB schreibt.

    Ach - vlt. hast du Glück: VisualStudio2010 generiert auch einen TableAdapterManager aufs Form, der alle am Form beteiligten TableAdapter beinhaltet.
    Dieser TableAdapterManager verfügt über die super-Routine "UpdateAll"

    Das Problem ist, wenn man viele Veränderungen vornimmt, kriegt der TAM das nicht mit, und dann fehlt ihm der eine oder annere TableAdapter.

    Also wenn du Glück hast, und dein TableAdapterManager funktioniert, dann kannst du DeleteFromTable1ButtonClick mit 2 Zeilen erledigen, udn dein Chef ist glücklich:

    VB.NET-Quellcode

    1. Table1BindingSource.RemoveCurrent 'entfernt den Datensatz aus dem Dataset
    2. TableAdapterManager.UpdateAll() 'schreibt alle Änderungen (es ist hier nur eine) in die DB