0

我一直在尝试执行查询:-

String selectQuery="SELECT "+ROLE+" FROM "+TABLE_EMPLOYEE+ " WHERE "+USER_ID+ "='"+userId+"' AND "+PASSWORD+"='"+password+"';";
cursorObj = dbObj.rawQuery(selectQuery, null);

这将导致:-

SELECT Role FROM employee WHERE User_Id='HondaSE' AND Password='456';

日志猫说:-

01-08 12:05:10.070: W/System.err(9318): android.database.sqlite.SQLiteException: no such column:
 HondaQE: , while compiling: SELECT Role FROM employee WHERE User_Id=HondaQE AND Password=123;

对于用户 ID 和密码,我也尝试使用双引号运行查询。导致:-

SELECT Role FROM employee WHERE User_Id="HondaSE" AND Password="456";

然而,当在 SQLITE 数据浏览器中执行时,这两个查询都可以正常工作。两者都以相同的错误响应。

4

4 回答 4

0

改写成这样

String selectQuery="SELECT "+ROLE+" FROM TABLE_EMPLOYEE " WHERE USER_ID ='" + userId + "' AND PASSWORD = '" +password+ "'";
于 2013-01-08T07:26:36.620 回答
0

您的 logcat 显示如下。

while compiling: SELECT Role FROM employee WHERE User_Id=HondaQE AND Password=123;

中的字符串没有单引号User_Id=HondaQE AND Password=123

于 2013-01-08T07:27:04.787 回答
0

您没有正确编译原始查询。我建议您改用“查询”并使用选择参数来避免这些错误和可能的 sql 注入。

于 2013-01-08T07:28:40.843 回答
0

在访问游标之前,我已经关闭了数据库。这就是错误。访问游标后,数据库将被关闭。错误已解决。

于 2013-01-09T09:07:15.157 回答