我正在尝试将我的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.
错误。
有人能看到我遗失的明显事物吗?
其他信息:
Username
和passwordHash
是字符串,AdminPower
是布尔值。
Username
和Password
是文字字段,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();
答案 0 :(得分:0)
试试这个'{2}'
:
String StrCmd = String.Format("INSERT INTO tbl_Users (Username, Password, IsAdmin) VALUES ('{0}', '{1}', '{2}');", Username, passwordHash, AdminPower);
答案 1 :(得分:0)
Facepalms 我注意到我正在检查的保留字列表是针对SQL-Sever的。我找到了一个用于MSAccess和" PASSWORD" Access中的保留字...我将其更改为UserPassword,它可以工作......
哎呀。