首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL insert语句语法错误

SQL insert语句语法错误
EN

Stack Overflow用户
提问于 2017-04-28 17:33:10
回答 1查看 54关注 0票数 0

我试图在uname数据库字段中插入这个名称。但这似乎不太好。我会感谢你的帮助。顺便说一句,我已经查过了我能得到的所有帮助的来源。然而,它仍然一样。

代码语言:javascript
运行
复制
Public Conn_OLE As New OleDb.OleDbConnection
Public myCMD As New OleDb.OleDbCommand
Public myDR As OleDb.OleDbDataReader

Public Sub ConOpenDB_OLE() 'Use to connect to a database via oledb
    Try
        Conn_OLE = New OleDb.OleDbConnection
        Conn_OLE.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =C:\Users\DHALIA\Downloads\ThesisSystem - Copy\ThesisSystem - Copy\Thesis_Try_1\ThesisDB.accdb;Jet OLEDB:Database Password=mdr_mvp"
        Conn_OLE.Open()
        Conn_OLE.Close()
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
    ConOpenDB_OLE()
    Conn_OLE.Open()
    myCMD.CommandText = "INSERT INTO USER ([uname],) VALUES (@uname)"

    myCMD.Parameters.AddWithValue("@uname", UsernameTextBox.Text)

    myCMD.Connection = Conn_OLE
    myCMD.ExecuteNonQuery()
    myCMD.Dispose()
    Conn_OLE.Close()

End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-28 17:36:41

USER是Access中的保留关键字,您需要在其周围加上方括号,并在uname字段之后修复错误:(在最后列出的字段之后不需要逗号)

代码语言:javascript
运行
复制
CMD.CommandText = "INSERT INTO [USER] ([uname]) VALUES (@uname)" 

另外,我建议您将创建连接的代码更改为

代码语言:javascript
运行
复制
Public Function ConOpenDB_OLE() As OleDbConnection
    Dim con = New OleDb.OleDbConnection
    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =C:\Users\DHALIA\Downloads\ThesisSystem - Copy\ThesisSystem - Copy\Thesis_Try_1\ThesisDB.accdb;Jet OLEDB:Database Password=mdr_mvp"
    con.Open()
    Return con

End Sub

这允许您编写以下代码

代码语言:javascript
运行
复制
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
    Using con = ConOpenDB_OLE()
        myCMD.CommandText = "INSERT INTO [USER] ([uname]) VALUES (@uname)"
        myCMD.Parameters.AddWithValue("@uname", UsernameTextBox.Text)
        myCMD.Connection = con
        myCMD.ExecuteNonQuery()
    End Using
End Sub

这样,您不再需要一个全局变量来保持您的连接,您只需要在需要的时候得到它,使用using语句,您也不会在异常情况下忘记正确的关闭和处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43685837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档