Hoi,
Doch irgendwie funktioniert das nicht. Kann mir jemand sagen warum ?
Was funktioniert nicht?
Eine genauere Problembeschreibung (Fehlermeldung) verkürzt mir und anderen die Zeit, dir helfend zu antworten.
Wenn ich dem Ablauf deines VB-Codes folge, erzeugst du mit
Private ds As New DataSet
ein völlig leeres (ohne eine Table "Users") Dataset
dann versuchst du eine neue Row für die nicht vorhandene Tabelle Users zu erzeugen
Dim row As DataRow = ds.Tables("Users").NewRow
schlägt es da bereits fehl?
Was du imho vergessen hast: Du solltest (wenn du willst) erstmal die Daten von der DB mit dem OleDbDataAdapter in das Dataset laden
Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(da)
conn.Open()
sollte werden zu
Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(da)
da.Fill(ds)
ein "conn.Open()" brauchst du afaik nicht explizit schreiben, das macht der DataAdapter schon alleine, aber falsch ist es trotzdem nicht
Durch das .Fill wird implizit die Tabelle "Users" mit dem Schema von "Users" aus der DB in deinem leeren Dataset erzeugt. Danach kannst du die Tabelle dann benutzen (Rows hinzufügen, löschen, ändern, wasauchimmer). Der OleDbCommandBuilder stellt dann bei Bedarf die richtigen SQL Statements zur Verfügung wenn du da.Update(ds) aufrufst.
Wozu "row("Datum") = DateTime.Now.ToShortDateString" ?
Ist deine Spalte Datum in der DB nicht vom Typ DateTime?
SELECT *
ist ebenfalls nicht empfehlenswert, da so das Subsystem selbst erst die MetaDaten für Spaltennamen etc herausfinden muss (wie viele es gibt etc)
Und du bist dir ausserdem sicher, dass
Private dbpath As String = System.IO.Path.Combine(Application.StartupPath, "UserDB.mdb")
auch auf eine existierende Datei zeigt?
Adios,
Frank