我正在为程序创建一个注册表单但是我无法获取用于保存到microsoft访问数据库的用户名和密码。我没有看到我的代码出错的地方,我在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()
答案 0 :(得分:1)
您正在添加参数,但您的语句未参数化。如果不使用@username
在SQL语句中引用这些参数,则不会在任何地方使用它们。第一行仍然容易受到SQL注入攻击,因为你要连接原始用户输入。
答案 1 :(得分:1)
密码是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()