我在C-Sharp Form Application中编写以下代码,它给出了以下错误。
> Syntax error in INSERT INTO statement.
OleDbCommand cmd =
new OleDbCommand(
"Insert into Info (username, password) Values ('"
+ username
+ "', '"
+ password
+ "')"
, conn
);
答案 0 :(得分:3)
PASSWORD一词是保留的关键字。 要使用它,您应该将字符串括在方括号
中OleDbCommand cmd = new OleDbCommand("Insert into Info (username, [password]) Values ('" + username + "', '" + password + "')", conn);
请,请不要使用字符串连接来构建sql语句。这是一个非常糟糕的做法,导致其他语法错误(带有单引号的用户名或密码)或最差的SQL注入攻击。如果您有智能和恶意用户,请look here采取可能发生的情况
OleDbCommand cmd = new OleDbCommand("Insert into Info (username, [password]) Values (?,?)", conn);
cmd.Parameters.AddWithValue("@p1", username);
cmd.Parameters.AddWithValue("@p2", password);
cmd.ExecuteNonQuery();
答案 1 :(得分:2)
您需要将password
括起来。这是一个reserved word。
OleDbCommand cmd =
new OleDbCommand("Insert into Info (username, [password]) Values ('" + username + "', '" + password + "')", conn);
答案 2 :(得分:1)
在用户名或密码变量中可能存在非法字符(例如单引号)。确保它们已经消毒。