Löschen in Datenbank mit Arrays klappt nicht

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Nilselino.

    Löschen in Datenbank mit Arrays klappt nicht

    Hallo ich versuche gerade aus einem Textfeld werte auszulesen die mit ";" gentrennt sind und die in ein Array speichern. Das klappt einsa. Nun will ich die Werte die in den Array sind an die Datenbank übermitteln und löschen. Dazu habe ich folgenden Code geschrieben da passiert aber garnichts.

    VB.NET-Quellcode

    1. Dim gesamt_invent
    2. Dim inventarrnummern() As String = Me.txt_invent.Text.Split(New [Char]() {" "c, ";"c})
    3. 'Textfelder in Variablen speichern
    4. Dim invent = txt_invent.Text
    5. Dim fehler = 0
    6. If (invent = "") Then
    7. fehler = 1
    8. MessageBox.Show("Bitte eine Inventarrnummer eintragen!", "Bitte eine Inventarrnummer eintragen!", MessageBoxButtons.OK, MessageBoxIcon.Stop)
    9. End If
    10. 'Vorbereiten zum eintragen
    11. Dim query As String
    12. Dim conStr As String = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Application.StartupPath & "\biboNika.mdb;"
    13. Dim conn As New System.Data.Odbc.OdbcConnection(conStr)
    14. If (fehler = 1) Then
    15. Exit Sub
    16. Else
    17. Try
    18. conn.Open()
    19. gesamt_invent = UBound(inventarrnummern) + 1
    20. For i = 1 To gesamt_invent
    21. query = "DELETE FROM buecher WHERE invent =" & inventarrnummern(0)
    22. Dim com As New System.Data.Odbc.OdbcCommand(query, conn)
    23. MessageBox.Show(com.ExecuteNonQuery())
    24. com.ExecuteNonQuery()
    25. Next i
    26. MsgBox("Löschen erfolgreich")
    27. Catch ex As Exception
    28. MsgBox("Fehler" & vbCrLf & ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Stop)
    29. Finally
    30. conn.Close()
    31. End Try
    32. End If
    33. 'Textfelder leeren
    34. txt_invent.Text = ""

    was mache ich falsch? Vielen Dank im Voraus schöne Grüße Nis
    kuck dir doch einfach den string im WHERE Teil, steht da irgendwas?
    Such mal nach 'IN' als erweiterung für dei 'WHERE' klausel, weiss jetzt im moment nicht ob es 'where in(1,2,3,) invent ' heissen muss oder where invent in(1,2,3,...)
    Eine andere Möglichkeit wäre, mit DataTables zu arbeiten.

    Du lädst eine Tabelle, kannst hier auch mit WHERE arbeiten.

    Dann arbeitest du rein mit dieser DataTable.
    Wenn du nun etwas in der dataTable änderst, sei es adden von Daten, löschen oder Modifizieren, ein einfaches Update reicht.

    Hilfreicher Thread

    Schau dir da mal meinen letzten Post an, die anderen vorhergegangenen sind auch sehr hilfreich in dem gesamten Thema. Die Klasse ist eine Hilfsklasse, die soweit funktioniert.