我一直在尝试执行查询: -
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';
logcat说: -
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;
我也尝试使用双引号运行查询,用于userId和密码。导致: -
SELECT Role FROM employee WHERE User_Id="HondaSE" AND Password="456";
但是,在SQLITE数据浏览器中执行时,这两个查询都能正常工作。 两者都回答相同的错误。
答案 0 :(得分:0)
像这样重写
String selectQuery="SELECT "+ROLE+" FROM TABLE_EMPLOYEE " WHERE USER_ID ='" + userId + "' AND PASSWORD = '" +password+ "'";
答案 1 :(得分:0)
您的logcat显示如下。
while compiling: SELECT Role FROM employee WHERE User_Id=HondaQE AND Password=123;
User_Id=HondaQE AND Password=123
中的字符串周围没有单引号。
答案 2 :(得分:0)
您没有正确编译原始查询。我建议你改用“查询”,并使用选择参数来避免这些错误和可能的SQL注入。
答案 3 :(得分:0)
我在访问游标之前关闭了数据库。这是错误。 访问游标后,将关闭数据库。错误解决了。