繁体   English   中英

'INSERT INTO语句中的语法错误。 无法将数据插入数据库[重复]

[英]'Syntax error in INSERT INTO statement.' Cannot insert data into database [duplicate]

我正在为程序创建注册表格,但是我无法获取要保存到Microsoft Access数据库中的用户名和密码。 我看不到我的代码出了什么问题,我不断收到“ INSERT INTO语句中的语法错误”。 这是我的代码...

    Dim sql As String = "INSERT INTO Users (username, password) VALUES (" & Me.Usernametxtb.Text & "','" & Me.Passwordtxtb.Text & "')"

        Dim cms As New OleDbCommand(sql, conn)
        cms.Parameters.AddWithValue("@username", Usernametxtb.Text)
        cms.Parameters.AddWithValue("@password", Passwordtxtb.Text)
        cms.ExecuteNonQuery()

您正在添加参数,但您的语句未参数化。 如果不使用@username在SQL语句中引用这些参数,则不会在任何地方使用它们。 第一行仍然容易受到SQL注入的攻击,因为您是在串联原始用户输入。

另外,永远不要以明文形式存储密码。

密码是Access中的保留字,因此请尝试:

Dim sql As String = "INSERT INTO Users (username, [password]) VALUES (@username, @password)"

Dim cms As New OleDbCommand(sql, conn)
cms.Parameters.AddWithValue("@username", Usernametxtb.Text)
cms.Parameters.AddWithValue("@password", Passwordtxtb.Text)
cms.ExecuteNonQuery()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM