asp.net - 尝试使用 "Insert into"ms-access 数据库时出错

标签 asp.net sql ms-access

我正在尝试将数据插入到 Access 数据库中,这个解决方案过去对我有用,但这次我不断收到错误:

An exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll but was not handled in user code

Additional information: Syntax error in INSERT INTO statement.

这是代码,下面是access中的数据库:

Imports System.Data.OleDb

Partial Class NewFS_Templates_Centured_Template
    Inherits System.Web.UI.Page

    Protected Sub sub_Click(sender As Object, e As EventArgs) Handles submit.Click
        'form data requests----------------------------------------------------

        Dim strFirst As String = first.Text
        Dim strLast As String = last.Text
        Dim strStatusg As String = statusg.Text

        Dim strPhone As String = phone.Text
        Dim strEmail As String = email.Text
        Dim strCat As String = cat.Text

        Dim strJoint As String = joint.Text
        Dim strAdvise As String = advisor.Text
        Dim strAuth As String = authors.Text

        Dim StrAtt As String = attend.Text
        Dim strTitle As String = title.Text
        Dim strAbs As String = abstract.Text

        'Open Db Connection (Remember to include Imports System.Data.OleDb)
        Dim strSQL As String
        Dim dbconn As OleDbConnection = Nothing

        dbconn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;data source=" & Server.MapPath("..\App_Data\ResearchSymposiumReg.mdb"))
        dbconn.Open()

        'SQL actions 
        'INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');
        strSQL = "INSERT INTO ResearchSymposium2014 (AuthorLast, AuthorFirst, RegStatus, Email, Phone, Catagory, JointSubmission, Advisor, Co-Authors, Attending, PosterTitle, Abstract) values (@strFirst,@strLast,@strStatusg,@strPhone,@strEmail,@strCat,@strJoint,@strAdvise,@strAuth,@StrAtt,@strTitle,@strAbs);"
        Dim objcmd = New OleDbCommand(strSQL, dbconn)

        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@AuthorLast", strFirst))
        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@AuthorFirst", strLast))
        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@RegStatus", strStatusg))

        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@Email", strEmail))
        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@Phone", strPhone))
        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@Catagory", strCat))

        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@JointSubmission", strJoint))
        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@Advisor", strAdvise))
        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@Co-Authors", strAuth))

        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@Attending", StrAtt))
        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@PosterTitle", strTitle))
        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@Abstract", strAbs))

        'Sets each parameter to "DBNULL" or "blank" if they are null/blank
        'objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@FirsNtame", If(strFirst, DBNull.Value)))
        For Each param As System.Data.OleDb.OleDbParameter In objcmd.Parameters
            If param.Value Is Nothing Then
                param.Value = DBNull.Value
            End If
        Next

        objcmd.ExecuteNonQuery()
        'Close DB Connection
        dbconn.Close()
        Server.Transfer("ThankYou.aspx", True)
    End Sub


End Class

This is the access database in design mode

最佳答案

字段名称Co-Authors包含连字符,因此必须用方括号括起来,即,

... Advisor, [Co-Authors], Attending, ...

关于asp.net - 尝试使用 "Insert into"ms-access 数据库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920479/

相关文章:

Asp.Net Cache,从缓存中修改对象并更改缓存值

asp.net - 如何在IIS6.0服务器的asp.net2.0中更改服务器响应头

MySql 从 2 个表中选择具有多个子产品的产品

sql - 如何在 PostgreSQL 中格式化数字?

php - 在单个查询中查找 mysql 表中某个条目左侧和右侧的条目

与 MS Access 的 java 连接

c# - asp.net mvc4 生成新的帐户确认 token

asp.net - 无法将 'System.Web.Profile.DefaultProfile' 类型的对象转换为 'ProfileCommon' 类型

ms-access - 根据数量字段重复记录

java - 将 Statement.RETURN_GENERATED_KEYS 与 MS-Access JDBC-ODBC 一起使用会引发异常