首页 文章

OLEDB SQL语法错误,我看不到它

提问于
浏览
0

我正在尝试将我的C#程序上的新用户发送到数据库(在这种情况下为MSAccess) . 我按如下方式创建字符串......

String StrCmd = String.Format("INSERT INTO tbl_Users (Username, Password, IsAdmin) VALUES ('{0}', '{1}', {2});", Username, passwordHash, AdminPower);

这会创建一个SQL字符串,例如......

INSERT INTO tbl_Users (Username, Password, IsAdmin) 
VALUES ('TestUser', '1013638657', False);

如果我将它粘贴到MSAccess中的Query中,这可以正常工作,但在代码中我不断收到 Syntax error in INSERT INTO statement. 错误 .

任何人都可以看到我失踪的明显事物吗?

附加信息:

UsernamepasswordHash 是字符串, AdminPower 是布尔值 .

UsernamePassword 是文本字段, IsAdmin 是是/否字段 .

感兴趣的代码块...

OleDbConnection MyConn = new OleDbConnection(Program.ConnStr);
MyConn.Open();
String StrCmd = String.Format("INSERT INTO tbl_Users (Username, Password, IsAdmin) VALUES ('{0}', '{1}', {2});", Username, passwordHash, AdminPower);
OleDbCommand Cmd = new OleDbCommand(StrCmd, MyConn);
Cmd.ExecuteNonQuery();
MyConn.Close();

2 回答

  • 0

    Facepalms我注意到我正在检查的保留字列表是SQL-Sever . 我找到一个用于MSAccess,"PASSWORD"是Access中的保留字...我将其更改为UserPassword,它可以工作......

    哎呀 .

  • 0

    试试这个 '{2}'

    String StrCmd = String.Format("INSERT INTO tbl_Users (Username, Password, IsAdmin) VALUES ('{0}', '{1}', '{2}');", Username, passwordHash, AdminPower);
    

相关问题