【问题标题】:insert into syntax error插入语法错误
【发布时间】:2015-06-10 08:49:00
【问题描述】:
Private databaseConnector As DatabaseConnector
    Dim fulltxtSQL As String


    DatabaseConnector = New DatabaseConnector



    Try

        fulltxtSQL = "insert into [user-table] (username, password) VALUES ('" & UserName.Text & "','" & Password.Text & "')"

        DatabaseConnector.RunSqlNonQuery(fulltxtSQL)

        If DatabaseConnector.RunSqlNonQuery(fulltxtSQL) = True Then

            MsgBox("thank you for registering ", vbInformation, Title.Trim)
            Response.Redirect("Default.aspx")

            Exit Sub

        Else
            MsgBox(MsgBox("There has been a error in your registering", vbInformation, Title.Trim))
        End If
    Catch ex As Exception
        MsgBox(ex.Message.Trim, MsgBoxStyle.Information + MsgBoxStyle.OkOnly, Me.Title.Trim)
        Exit Sub
    End Try
End Sub

我正在尝试将数据从文本框获取到数据库表。 insert into 语句中的语法错误与数据库的连接工作正常,但是当它到达 insert into 语句时,我得到错误

【问题讨论】:

  • 你应该使用参数化查询来防止sql注入
  • 您的代码非常不安全。任何人都可以很容易地找出您表中的所有密码。您应该阅读有关 Sql Injection 的更多信息。

标签: asp.net database vb.net


【解决方案1】:

试试这个

INSERT INTO [user-table] ([username],[password]) VALUES('" & UserName.Text & "','" & Password.Text & "')"

您的查询包含特殊字符,例如usertablepassword,因此会出错。所以你需要做的就是把这些字符放在括号[]中。

您还应该使用parameterized 查询。

【讨论】:

  • 好的,问题已解决,非常感谢您对本网站的帮助
  • 你应该使用参数化查询它会阻止sql注入。
  • 是的,我将努力改进我的网站,一旦完成了其他页面
【解决方案2】:

尝试使用此命令

cmd = New System.Data.OleDb.OleDbCommand("INSERT INTO [user-table] ([username],[password]) VALUES('" & UserName.Text & "','" & Password.Text & "')", con)

如果您的表名包含此类特殊字符,请使用方括号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2013-01-10
    • 2015-03-16
    相关资源
    最近更新 更多