Brauche Hilfe: Simple MDB-Datenbank? Syntax für die Anweisungen?

  • VB.NET

    Brauche Hilfe: Simple MDB-Datenbank? Syntax für die Anweisungen?

    Hallo, Leute!

    Ich habe vor einer gefühlten Stunde mal Google gequält, wie ich einfach eine Datenbank erstellen, speichern und auswerten lassen kann.
    Von wegen einfach.
    Ich habe zwei Code-Segmente (eines zum erstellen einer Datenbank, das andere zum Laden/Speichern) aus dem Forum hier genommen und auf gut Glück gehofft, dass es schon irgendwie klappt.

    Mein Problem: Ich habe keine Ahnung, wie diese Datenbanken funktionieren, brauche aber eine für ein DataGridview.

    Mein Code sieht bisher so aus:


    Der Anfang:

    VB.NET-Quellcode

    1. Imports System.Data.OleDb
    2. Public Class Form1
    3. Private dt As New DataTable Private da As OleDbDataAdapter Private ds As New DataSet Private bs As New BindingSource


    Falls keine Datenbank vorhanden:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    2. If Not My.Computer.FileSystem.FileExists(Application.StartupPath & "\ToDoList.mdb") Then Dim conStr As String = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Application.StartupPath & "\ToDoList.mdb;" Dim query As String query = "Create Table Tabelle1(Field1 String, Field2 String)"
    3. Dim conn As New System.Data.Odbc.OdbcConnection(conStr) Dim com As New System.Data.Odbc.OdbcCommand(query, conn)
    4. If System.IO.File.Exists(Application.StartupPath & "\ToDoList.mdb") = True Then MsgBox("Es besteht bereits eine Datenbank mit den Namen 'ToDoList.mdb'") Exit Sub End If Try Dim oCat As ADOX.Catalog Dim sConn As String
    5. oCat = New ADOX.Catalog sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\ToDoList.mdb;"
    6. oCat.Create(sConn) oCat = Nothing
    7. conn.Open() com.ExecuteNonQuery()
    8. Catch ex As Exception MsgBox("Fehler beim Erstellen der Datenbank" & vbCrLf & vbCrLf & ex.Message) Finally conn.Close() End Try



    Wenn Datenbank vorhanden:

    VB.NET-Quellcode

    1. Else Dim conStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\ToDoList.mdb;" Dim Con As New OleDbConnection(conStr)
    2. 'ds.Tables.Add(dt) ds.Tables.Add(New DataTable)
    3. da = New OleDbDataAdapter("SELECT * FROM Tabelle1", Con)
    4. da.Fill(dt)
    5. Dim cb As New OleDbCommandBuilder(da)
    6. bs.DataSource = dt
    7. Me.DataGridView1.DataSource = bs End If End Sub


    Wenn Form geschlossen wird:

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If ds.HasChanges Then If MsgBox("Änderungen speichern?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo) Then bs.EndEdit() da.Update(ds.Tables(0)) End If End If End Sub


    Das Gute:
    - Eine Datenbank wird erstellt!
    - Bei Aufrufen der Datenbank werden die Spalten (leider nur die Überschriften) richtig geladen!

    Das Schlechte:
    - Er speichert nicht ab?
    - Anfangs gab's ordentlich Probleme mit dem Fill, hab ein bisschen rumprobiert und es scheint sich soweit nicht wieder über das Fill aufzuregen...

    Leute! Ich brauche da bitte Hilfe, ich kenne mich kein bisschen damit aus und Google brach auch schon unter meiner Verzweiflung zusammen :(

    Appropos: Warum wird mein Visual-Basic-Code so verhackstückelt?


    MfG,
    X-Zat