Frank (no reg): VB.NET Datenbankzugriff aus ASP.NET heraus

Beitrag lesen

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