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.
错误。
任何人都可以看到明显的东西我失踪?
其它信息:
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();
回答:
试试这个'{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