strSQL = "INSERT INTO Accounts UserName, Password VALUES ('" & txtUsername.Text & "', '" & txtEncryptedPassword & "');"
执行代码时会抛出错误,但是没有可见的问题我可以看到。救命啊!
答案 0 :(得分:5)
密码一词保留在MS-Access中 您需要在该名称周围使用方括号(或将其更改为不同的名称)
strSQL = "INSERT INTO Accounts (UserName, [Password]) VALUES (......
说,请使用参数化查询来构建sql命令 像你这样的字符串连接很容易被黑客使用SQL Injection进行攻击 此外,如果用户名或密码包含单引号,则使用字符串连接构建的结果sql文本将无效。
strSQL = "INSERT INTO Accounts (UserName, [Password]) VALUES (?, ?)"
OleDbCommand cmd = new OleDbCommand(strSQL, connection);
cmd.Parameters.AddWithValue("@p1",txtUsername.Text);
cmd.Parameters.AddWithValue("@p2",txtEncryptedPassword);
cmd.ExecuteNonQuery();
答案 1 :(得分:1)
你忘了括号:
strSQL = "INSERT INTO Accounts (UserName, Password) VALUES ('" & txtUsername.Text & "', '" & txtEncryptedPassword & "');"
答案 2 :(得分:0)
您正在做()
这个错误,您应该添加:
您的代码:
strSQL = "INSERT INTO Accounts UserName, Password VALUES ('" & txtUsername.Text & "', '" & txtEncryptedPassword & "');"
您必须更改以下代码:
strSQL = "INSERT INTO Accounts (UserName, Password) VALUES ('" & txtUsername.Text & "', '" & txtEncryptedPassword & "');"
的 UPDATE1:强> 的
"INSERT INTO `test`.`users` ( `username`, `password`) " & _
"VALUES ('" & txtUsername.Text & "', '" & txtPassword.Text & "');"
的 UPDATE2:强> 的
"INSERT INTO users ( `username`,`password`)VALUES(@txtUsername.Text,@txtPassword.Text);"
"INSERT INTO users (Username,Password)VALUES(?,?);"
注意:test表示您应该更改数据库名称的数据库名称。
答案 3 :(得分:0)
试试这段代码:
Dim strSQL As String = "INSERT INTO tblDetail VALUES('" & strPersonCode _
& "','" & strForename & "','" & strSurname & "','" & strDateOfBirth & "'," & strCurrentlyWith & ",'" & strConditions & "')"
这样做,但改变你的名字。 将文本框的值声明为字符串,然后使用它们。