Wenn ich deinen Code verwende funktioniert es einwandfrei. Ich verwende jedoch gar keine DataTable sondern fülle das Dataset mit dem Dataadapter.
Hier mal der komplette Code:
Public Class F_Main
Private conn As New OleDbConnection( _
"Provider=Microsoft.JET.OLEDB.4.0; Data" & _
"Source=I:\Daten\Access\Benutzerverwaltung.mdb;")
Private sql As String = "SELECT * FROM Users;"
Private cmd As New OleDbCommand(sql, conn)
Private da As New OleDbDataAdapter(cmd)
Private ds As New DataSet
Private dc As New DataColumn
Private dv As New DataView
Private bs As BindingSource Private Sub F_Main_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
LadeTab()
End Sub Private Sub LadeTab()
Try
conn.Open()
ds.Clear()
da.Fill(ds, "Users")
bs = New BindingSource(ds, "Users")
cboUsername.DataSource = bs
cboUsername.DisplayMember = "Username"
cboUsername.ValueMember = "ID"
With Me
.txtUsername.DataBindings.Add("Text", bs, "Username")
.txtGroup.DataBindings.Add("Text", bs, "Gruppe")
.txtDept.DataBindings.Add("Text", bs, "Abteilung")
End With
Catch ex As OleDbException
MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.OK, _
MessageBoxIcon.Exclamation)
Finally
conn.Close()
End Try
End Sub Private Sub btnInsert_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles btnInsert.Click
FuegeEinZeile(txtUsername.Text, txtPasswort.Text, txtGroup.Text, _
txtDept.Text)
End Sub Private Sub FuegeEinZeile(ByVal strUser As String, ByVal strPw _
As String, ByVal strGruppe As String, ByVal strAbt As String)
Try
Dim row As DataRow = ds.Tables("Users").NewRow()
row("Username") = strUser
row("Passwort") = Funktionen.StringToHash(strPw)
row("Gruppe") = strGruppe
row("Abteilung") = strAbt
ds.Tables("Users").Rows.Add(row)
MessageBox.Show("Neuer Datensatz hinzugefügt!" _
, "Neuer Datensatz", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
Catch ex As OleDbException
MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.OK, _
MessageBoxIcon.Exclamation)
End Try
End Sub Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles btnExit.Click
da.Update(ds, "Users")
Close()
End Sub |