OLEDB SQL语法错误,我看不到

我试图发送一个新的用户在我的C#程序到数据库(MSAccess在这种情况下)。我创建的字符串如下...OLEDB SQL语法错误,我看不到

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查询这工作得很好,但在代码我不断得到一个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}'

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

回答:

Facepalms我注意到的保留字我检查是为SQL-Sever的的名单。我发现一个用于MSAccess和“密码”是Access中的保留字...我将其更改为UserPassword,并且它可以正常工作...

grrr。

以上是 OLEDB SQL语法错误,我看不到 的全部内容, 来源链接: utcz.com/qa/259542.html

回到顶部