hallo,
ich hbae ein kleines datenbank programm erstellt, und komme nicht mehr weiter. ich lasse mir die datensätze aus meiner datenbank in textboxen ausgeben was auch soweit ganz gut funktioniert. nun möchte ich einen datensatz ändern und speichern. nun mein problem: die änderung wird gespeichert aber leider werden alle datensätze in der datenbank überschrieben, sodass ich den bearbeiteten datensatz mehrmals in der datenbank habe. da komme ich im moment nicht weiter und benötige ein wenig unterstützung.
hier der code:
Verbindung zur datenbank:
hier der code zum speichern der änderung:
hier die fehlermeldung:
in meiner datenbank befinden sich aktuell 4 datensätze die nun leider alle identisch sind. irgendwo ist ein fehler , wenn ich datensätze aktualisiern will.
ich hbae ein kleines datenbank programm erstellt, und komme nicht mehr weiter. ich lasse mir die datensätze aus meiner datenbank in textboxen ausgeben was auch soweit ganz gut funktioniert. nun möchte ich einen datensatz ändern und speichern. nun mein problem: die änderung wird gespeichert aber leider werden alle datensätze in der datenbank überschrieben, sodass ich den bearbeiteten datensatz mehrmals in der datenbank habe. da komme ich im moment nicht weiter und benötige ein wenig unterstützung.
hier der code:
Verbindung zur datenbank:
VB.NET-Quellcode
- Sub verbindung()
- c.ConnectionString = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Christian\um2.mdf;Integrated Security=True;Connect Timeout=30"
- c.Open()
- Dim da As New SqlClient.SqlDataAdapter
- da.SelectCommand = (New SqlClient.SqlCommand("SELECT * FROM ku_um2_db", c))
- da.Fill(dt)
- c.Close()
- bs.DataSource = dt
- Dim b As Binding
- b = New Binding("Text", bs, "ID")
- IDTextBox.DataBindings.Add(b)
- b = New Binding("Text", bs, "Vorname")
- VornameTextBox.DataBindings.Add(b)
- b = New Binding("Text", bs, "Nachname")
- NachnameTextBox.DataBindings.Add(b)
- b = New Binding("Text", bs, "PLZ")
- PLZTextBox.DataBindings.Add(b)
- b = New Binding("Text", bs, "Ort")
- OrtTextBox.DataBindings.Add(b)
- b = New Binding("Text", bs, "Straße")
- StraßeTextBox.DataBindings.Add(b)
- b = New Binding("Text", bs, "Email")
- EmailTextBox.DataBindings.Add(b)
- b = New Binding("Text", bs, "Telefon")
- TelefonTextBox.DataBindings.Add(b)
- End Sub
hier der code zum speichern der änderung:
VB.NET-Quellcode
- Sub bearbeiten()
- posBearbeiten = bs.Position
- Dim sqlCmd As New System.Data.SqlClient.SqlCommand
- sqlCmd.Connection = c
- If Not neuerDatensatz Then 'Datensatz mit UPDATE aktualisieren
- sqlCmd.CommandText = "UPDATE ku_um2_db SET Vorname = '" & VornameTextBox.Text _
- & "', Nachname = '" & NachnameTextBox.Text _
- & "', PLZ = '" & PLZTextBox.Text & "', Ort = '" & OrtTextBox.Text _
- & "', Straße = '" & StraßeTextBox.Text & "', Email = '" & EmailTextBox.Text _
- & "', Telefon = '" & TelefonTextBox.Text & "'"
- Else
- sqlCmd.CommandText = "INSERT INTO ku_um2_db(Vorname, Nachname, PLZ, Ort, Straße, Email, Telefon)" _
- & "VALUES( '" & VornameTextBox.Text & "', '" & NachnameTextBox.Text & "', '" & PLZTextBox.Text _
- & "', '" & OrtTextBox.Text & "', '" & StraßeTextBox.Text & "', '" & EmailTextBox.Text & "', '" & TelefonTextBox.Text & "')"
- End If
- Try
- Debug.Print(sqlCmd.CommandText)
- Try
- sqlCmd.Connection.Open()
- sqlCmd.ExecuteNonQuery()
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- Finally
- dt.Clear()
- da.Fill(dt)
- sqlCmd.Connection.Close()
- End Try
- If neuerDatensatz Then
- bs.MoveLast()
- Else
- bs.Position = posBearbeiten
- End If
- Catch ex As Exception
- MsgBox(ex.ToString)
- End Try
- End Sub
hier die fehlermeldung:
in meiner datenbank befinden sich aktuell 4 datensätze die nun leider alle identisch sind. irgendwo ist ein fehler , wenn ich datensätze aktualisiern will.