Insert text from a text box into and Access 2010 DataBase using VB.Net

混江龙づ霸主 提交于 2019-12-09 03:51:08

问题


I have 3 text boxes I am using as a contact form. I am trying to use VB to take this data and add it into my database. I have run debugging and it says the error is in the INSERT INTO string. ![Screen Grab of Debugging] [1]: http://i.stack.imgur.com/ufYPs.png

Any ideas?

Imports System

Imports System.Data Imports System.Data.OleDb Partial Class Contact Inherits System.Web.UI.Page

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim Name As String = txtName.Text
    Dim Email As String = tbxEmail.Text
    Dim Comment As String = tbxComment.Text

    Dim objConnection As OleDbConnection = Nothing
    Dim objcmd As OleDbCommand = Nothing

    Dim strSql As String
    Dim dbConn As OleDbConnection = Nothing

    dbConn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source = Z:\Documents\Databases\user.accdb")
    dbConn.Open()

    strSql = "INSERT INTO user (username, email, comments) VALUES (?,?,?)"
    objcmd = New OleDbCommand(strSql, dbConn)
    objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@username", Name))
    objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@email", Email))
    objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@comments", Comment))
    objcmd.ExecuteNonQuery()


    dbConn.Close()
    Response.Write("Submitted Successfully")

End Sub

回答1:


USER is a reserved keyword in MS-Access, To use it as a table name your need to enclose it in square brackets

strSql = "INSERT INTO [user] (username, email, comments) VALUES (?,?,?)"

As a side note, try to use the Using Statement when you work with disposable objects.

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim Name As String = txtName.Text
    Dim Email As String = tbxEmail.Text
    Dim Comment As String = tbxComment.Text

    Using dbConn = New OleDbConnection(".......")
        dbConn.Open()
        Dim strSql = "INSERT INTO [user] (username, email, comments) VALUES (?,?,?)"
        Using objcmd = New OleDbCommand(strSql, dbConn)
            objcmd.Parameters.AddWithValue("@username", Name)
            objcmd.Parameters.AddWithValue("@email", Email)
            objcmd.Parameters.AddWithValue("@comments", Comment)
            objcmd.ExecuteNonQuery()
        End Using
    End Using
    Response.Write("Submitted Successfully")
End Sub


来源:https://stackoverflow.com/questions/23375516/insert-text-from-a-text-box-into-and-access-2010-database-using-vb-net

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!