Datensätze ändern schlägt fehl

  • VB.NET

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von NXGENMeteora.

    Datensätze ändern schlägt fehl

    Liebes Forum,

    In mehreren Textboxen wird mir schon der Datensatz ausgegeben. Nun möchte ich , dass man diese Datensätze auch verändern kann. Habe eigentlich alles richtig Gemacht und starre ca. 30 min auf meinen code um zu gucken was ich falsch habe :D Habe keine Fehlermeldungen oder so aber wenn ich auf "aktualisieren" bei MC Access Klicke tut sich an den Werten des Datensatzes nichts.

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Try
    3. cmd2.CommandText =
    4. "update Bankdaten set " &
    5. "NameBank = " & Bname.Text &
    6. "Kreditmin = " & kMin.Text &
    7. "Kreditmax = " & kMax.Text &
    8. "Zinsmin = " & ZMin.Text &
    9. "Zinsmax = " & ZMax.Text &
    10. "where ID = " &
    11. pNummer(datensätze.SelectedIndex)
    12. MessageBox.Show(cmd2.CommandText)
    13. Catch ex As Exception
    14. MessageBox.Show(ex.Message)
    15. End Try
    16. End Sub


    Danke im vorraus

    MfG

    Matthias
    beim kurzen drüberfliegen tippe ich mal ganz stark darauf, dass Leerzeichen fehlen.
    sollte eher so aussehen:

    SQL-Abfrage

    1. "update Bankdaten set " &
    2. "NameBank = '" & Bname.Text & "'" &
    3. ",Kreditmin = '" & kMin.Text & "'" &
    4. ",Kreditmax = '" & kMax.Text & "'" &
    5. ",Zinsmin = '" & ZMin.Text & "'" &
    6. ",Zinsmax = '" & ZMax.Text & "'" &
    7. "where ID = " & pNummer(datensätze.SelectedIndex)

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „EaranMaleasi“ ()

    Habe meinen code entsprechend verändert, geht jedoch immer noch nicht:

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Try
    3. cmd2.CommandText =
    4. "update Bankdaten set " &
    5. "NameBank = '" & Bname.Text & "', " &
    6. "Kreditmin = '" & kMin.Text & "', " &
    7. "Kreditmax = '" & kMax.Text & "', " &
    8. "Zinsmin = '" & ZMin.Text & "', " &
    9. "Zinsmax = '" & ZMax.Text & "', " &
    10. "where ID = " &
    11. pNummer(datensätze.SelectedIndex)
    12. MessageBox.Show(cmd2.CommandText)
    13. Catch ex As Exception
    14. MessageBox.Show(ex.Message)
    15. End Try
    16. End Sub
    Hier ist ein Screenshot der Datenbank:



    Und hier ist der Quellcode der Form:

    VB.NET-Quellcode

    1. Imports System.Data.OleDb
    2. Public Class ChangeBankdaten
    3. Public con As New OleDbConnection
    4. Public cmd As New OleDbCommand
    5. Public cmd2 As New OleDbCommand
    6. Public reader As OleDbDataReader
    7. Public Anzahl As Integer
    8. Public id As Integer
    9. Public pNummer As New ArrayList
    10. Private Sub ChangeBankdaten_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    11. con.ConnectionString =
    12. "Provider= Microsoft.ACE.OLEDB.12.0;" &
    13. "Data Source = C:\Users\p1\Desktop\Darlehensrechner\Banken.accdb"
    14. cmd.Connection = con
    15. cmd2.Connection = con
    16. cmd.CommandText = "select * from Bankdaten"
    17. con.Open()
    18. reader = cmd.ExecuteReader
    19. Do While reader.Read()
    20. datensätze.Items.Add(
    21. reader("NameBank"))
    22. pNummer.Add(reader("ID"))
    23. Loop
    24. reader.Close()
    25. End Sub
    26. Private Sub BankHinzufügen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    27. End Sub
    28. Private Sub datensätze_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles datensätze.SelectedIndexChanged
    29. Try
    30. cmd2.CommandText = "select * from Bankdaten" &
    31. " where ID = " &
    32. pNummer(datensätze.SelectedIndex)
    33. reader = cmd2.ExecuteReader
    34. reader.Read()
    35. Bname.Text = reader("NameBank")
    36. kMin.Text = reader("Kreditmin")
    37. kMax.Text = reader("Kreditmax")
    38. ZMin.Text = reader("Zinsmin")
    39. ZMax.Text = reader("Zinsmax")
    40. Catch ex As Exception
    41. MessageBox.Show(ex.Message)
    42. End Try
    43. reader.Close()
    44. End Sub
    45. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    46. Try
    47. cmd2.CommandText =
    48. "update Bankdaten set " &
    49. "NameBank = '" & Bname.Text & "', " &
    50. "Kreditmin = '" & kMin.Text & "', " &
    51. "Kreditmax = '" & kMax.Text & "', " &
    52. "Zinsmin = '" & ZMin.Text & "', " &
    53. "Zinsmax = '" & ZMax.Text & "', " &
    54. "where ID = " &
    55. pNummer(datensätze.SelectedIndex)
    56. MessageBox.Show(cmd2.CommandText)
    57. Catch ex As Exception
    58. MessageBox.Show(ex.Message)
    59. End Try
    60. End Sub
    61. End Class
    Bilder
    • datenbank.PNG

      27,07 kB, 1.126×361, 130 mal angesehen

    VB.NET-Quellcode

    1. 'Imports System.Data.OleDb <--- Importieren
    2. '+ Darauf achten dass deine Software x32 kompiliert wird
    3. Using con As New OleDbConnection("DEIN CONNECTION STRING")
    4. Dim str As String
    5. Dim cmd As OleDbCommand
    6. str = "UPDATE Bankdaten SET "
    7. str &= "NameBank = '" & Bname.Text & "', "
    8. str &= "Kreditmin = '" & kMin.Text & "', "
    9. str &= "Kreditmax = '" & kMax.Text & "', "
    10. str &= "Zinsmin = '" & ZMin.Text & "', "
    11. str &= "Zinsmax = '" & ZMax.Text & " where ID = " & pNummer(datensätze.SelectedIndex)
    12. con.Open()
    13. cmd = New OleDbCommand(str, con)
    14. Try
    15. cmd.ExecuteNonQuery()
    16. Catch ex As Exception
    17. Messagebox.Show("Fehlgeschlagen!" & vbCrLf & vbCrLf & ex.Message)
    18. End Try
    19. End Using
    20. 'Meteora

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „NXGENMeteora“ ()

    Error:

    "Das Format der Initialisierungszeichenfolge stimmt nicht mit der Spezifikation überein, die bei Index '0' beginnt."



    Danke für den quellcode, jedoch kommt dabei ^ dieser Error.

    Habe das in den Runden klammern weg gemacht dann kommt der fehler dort nicht mehr, jedoch funktioniert es immer noch nicht so richtig

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Using con5 As New OleDbConnection()
    3. con5.ConnectionString =
    4. "Provider= Microsoft.ACE.OLEDB.12.0;" &
    5. "Data Source = C:\Users\p1\Desktop\Darlehensrechner\Banken.accdb"
    6. Dim str5 As String
    7. Dim cmd5 As OleDbCommand
    8. str5 = "UPDATE Bankdaten SET "
    9. str5 &= "NameBank = '" & Bname.Text & "', "
    10. str5 &= "Kreditmin = '" & kMin.Text & "', "
    11. str5 &= "Kreditmax = '" & kMax.Text & "', "
    12. str5 &= "Zinsmin = '" & ZMin.Text & "', "
    13. str5 &= "Zinsmax = '" & ZMax.Text & " where ID = " & pNummer(datensätze.SelectedIndex)
    14. con5.Open()
    15. cmd5 = New OleDbCommand(str5, con5)
    16. Try
    17. cmd.ExecuteNonQuery()
    18. Catch ex As Exception
    19. MessageBox.Show("Fehlgeschlagen!" & vbCrLf & vbCrLf & ex.Message)
    20. End Try
    21. con5.Close()
    22. End Using
    23. End Sub


    So sieht mein momentaner Code aus

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Hourmin“ ()