Du machst in diesem Code so ziemlich alles falsch, was nur eben geht.
1. Niemals globale Connections benutzen.
2. Mal anschauen was es an New überladungen gibt, je mehr code du schreibst, umso mehr fehler kannst du machen.
3. DataBinding ist so einfach, das es sträflich ist das selbst hinzufrickeln.
Imports System.Data
Imports System.Data.OleDb
Public Class Form1
Private connectionstring As string
Private binder as New BindingSource
Private ds As New DataSet
Dim pos As Integer
Dim anz As Integer
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As _
System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim erg As Integer
erg = MessageBox.Show("Sollen Änderungen gespeichert werden?", _
"Datenbankupdate", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If erg = Windows.Forms.DialogResult.Yes Then
binder.EndEdit()
Dim da as new OleDbDataAdapter( "select * from mitarbeiter", _
connectionstring)
Dim cmdBld As New OleDbCommandBuilder(da)
da.Update(ds, "MitarbeiterIntern")
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
With OpenFileDlg
.Title = "Öffnen Firma-Datenbank"
.InitialDirectory = "c:\temp"
.Filter = "mdb-Datenbanken|*.mdb"
.FileName = ""
.ShowDialog()
End With
connectionstring = "Provider=Microsoft.Jet.OleDB.4.0; Data Source=" & _
OpenFileDlg.FileName & ";"
Dim da as new OleDbDataAdapter( "select * from mitarbeiter", _
connectionstring)
anz = da.Fill(ds, "MitarbeiterIntern")
binder.DataSource = ds.Tables("MitarbeiterIntern")
txtVorname.DataBindings.Add("Text",binder,"Vorname")
txtNachname.DataBindings.Add("Text",binder,"Nachname")
txtGebDatum.DataBindings.Add("Text",binder,"Geburtsdatum")
chkTeilzeit.DataBindings.Add("Checked",binder,"Teilzeit")
End Sub
Private Sub btnNachher_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles btnNachher.Click
binder.MoveNext();
End Sub
Private Sub btnErster_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles btnErster.Click
binder.MoveFirst();
End Sub
Private Sub btnLetzter_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles btnLetzter.Click
binder.MoveLast();
End Sub
Private Sub btnVorher_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles btnVorher.Click
binder.MovePrevious();
End Sub
End Class |