In Datenbank schreiben

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von noelelias.

    In Datenbank schreiben

    Hallo ich habe eine frage, ich habe ein kleines Formular in einer Form gemacht, die einträge sollen in eine Access DB.
    Aber es werden keine Einträge rein geschrieben wenn ich auf DataSet > Datenvorschau gehe, nur die ich per hand eingetragen hab.

    Könnt ihr mir sagen was ich falsch mache?

    VB.NET-Quellcode

    1. Dim con As New OleDb.OleDbConnection
    2. Dim cmd As New OleDb.OleDbCommand
    3. Dim pfad As String
    4. pfad = My.Application.Info.DirectoryPath & "\user_db.mdb"
    5. con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & pfad
    6. cmd.Connection = con
    7. Try
    8. con.Open()
    9. cmd.CommandText = "INSERT INTO user(vorname, nachname, telefon) " & "VALUES('" & txtvorname.Text & "','" & txtnachname.Text & "','" & txttelefon.Text & "')"
    10. con.Close()
    11. Catch ex As Exception
    12. MsgBox(ex.Message)
    13. End Try
    zuerst mal, warum zerlegst du einen string, wenn du ihn zusammen lassen kannst

    VB.NET-Quellcode

    1. con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & pfad


    das kannst du genau so gut so lassen

    VB.NET-Quellcode

    1. con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & pfad


    dann würde ich gerne wissen, welche ausgabe kommt, wenn du ihn reinschreiben lässt, er kann ja kaum sagen, ok, und dann aber nichts machen....
    Oh :S das hab ich wohl übersehen!

    Er gibt mir keinen Fehler, er führt auch die Befehle danach aus.
    Aber er schreibt einfach nichts rein, kann es sein das man der DB noch rechte geben muss das in sie geschrieben werden darf? Oder würde es dann eine Fehler meldung geben?
    also in der regel, wenn es keinen fehler gibt, sollte das auch klappen, probiers mal damit

    VB.NET-Quellcode

    1. Dim query As String
    2. Dim conStr As String = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Application.StartupPath & "\datenbank.mdb;"
    3. query = "INSERT INTO def (feld1, feld2, usw) VALUES ('" & erster wert & "', '" & zweiter wert & "', '" & usw & "')"
    4. Dim conn As New System.Data.Odbc.OdbcConnection(conStr)
    5. Dim com As New System.Data.Odbc.OdbcCommand(query, conn)
    6. Try
    7. conn.Open()
    8. com.ExecuteNonQuery()
    9. MsgBox("OK")
    10. Catch ex As Exception
    11. MsgBox("Fehler" & vbcrlf & ex.Message)
    12. Finally
    13. conn.Close()
    14. End Try


    PS: damit das funzt, musst du vorher auf microsoft ado ext 2.7 oder 2.8 verweisen
    indem du, während du in deinem projekt bist, oben in der menüleiste auf projekt->verweis klickst

    im neu geöffneten fenster dann in der registerkarte auf com gehen, und dort nach microsoft ado ext suchen, dann nimmst du das 2.8 davon, un einfach ok
    na dann hast du i-wie einen code, der entweder ein löschen verursacht oder ka was.... :P

    aber ohne angaben kann ich dir nicht helfen

    debugge mal dein programm, und prüfe nach, ob er i-wie in eine sub oder function reingeht, in der was drinsteht, was nach löschen aussieht
    Bei mir wird ein Fehler angeueigt.

    VB.NET-Quellcode

    1. Module mdlDBS
    2. Public Function fRegister(ByVal username As String, ByVal password As String, ByVal email As String, _
    3. ByVal rang As String, ByVal screenname As String, _
    4. ByVal snumber As String, ByVal banned As Integer, ByVal reason As String) As String
    5. Dim query As String
    6. Dim conStr As String = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Application.StartupPath & "\datenbank.mdb;"
    7. query = "INSERT INTO user(username, password, email, rang, screenname, snumber, banned, reason) " & _
    8. "VALUES('" & username & "','" & password & "','" & email & "','" & rang & "','" & screenname & "','" & snumber & "','" & banned & "','" & reason & "')"
    9. Dim conn As New System.Data.Odbc.OdbcConnection(conStr)
    10. Dim com As New System.Data.Odbc.OdbcCommand(query, conn)
    11. Try
    12. conn.Open()
    13. com.ExecuteNonQuery()
    14. MsgBox("OK")
    15. Catch ex As Exception
    16. MsgBox("Fehler" & vbCrLf & ex.Message)
    17. Finally
    18. conn.Close()
    19. End Try
    20. End Function
    21. End Module


    In Zeile 8 steht bei mir der Fehler bei "Application". Und zwar will er dass ich "System.Net.Mime.MediaTypeNames" importiere. Sobald ich dies tue ist in Zeile 8, diesmal bei "Application.StartupPath" schonwider ein Fehler.
    Dort steht:

    "StartupPath" ist kein Member von "System.Net.Mime.MediaTypeNames".


    Was kann ich tuen um dies zu beheben?

    (Info: Ich versuche diese Funktion in einer Consolanwendung auszuführen.)


    .:EDIT:.

    Problem gelöst.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ViktorS“ ()

    Guten Tag
    da ich ein gleiches Problem habe möchte ich sie fragen wie das bei einer .sdf Datenbank funktioniert.


    ErfinderDesRades - Moderator - Notiz: Bitte nicht uralt-Threads mit neuen Fragen hervorholen. Eröffne ein eigenes Thema.
    --> closed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()