2014-10-27 3 views
-1

Я пытаюсь запустить этот запрос, но он просто не работает, и я не могу найти, что с ним не так.Запуск необработанного запроса sqlite

public boolean verifyUser(String name , String pword){ 
    boolean result = false; 
    SQLiteDatabase db = this.getReadableDatabase(); 
    try { 
    Cursor res = db.rawQuery("select * from user where username="+name+" and password="+pword+"", null); 

     int count = res.getCount(); 

     res.moveToFirst(); 
     if (count == 0) 
     { 
      result = false; 
     } 
     else{ 
     result = true; 
     } 
    } 
     catch (SQLiteException se) { 
      Log.e(getClass().getSimpleName(), "Could not log in"); 
     } 
     return result; 
     //return true; 
    } 

ответ

3

В SQL вам необходимо поместить строковые литералы в 'single quotes'. А еще лучше, используйте параметры:

Cursor res = db.rawQuery("select * from user where username=? and password=?", 
    new String[] { name, pword }); 
0

Скопируйте и вставьте следующий запрос

select * from user where username='"+name+"' and password='"+pword+"'" 

на самом деле вам не хватает Single Котировки

+0

Это взорвется, когда значение содержит цитату. –

+0

Пробовал это, но как-то моя программа все еще рушится. Есть ли способ увидеть, что происходит в моей базе данных с помощью командной строки? Я использую eclipse – thesma

+0

@CL любезно уточнить пожалуйста – nobalG

0

Checked это, редактируется вашего кода.

public boolean verifyUser(String name , String pword){ 
    boolean result = false; 
    SQLiteDatabase db = this.getReadableDatabase(); 
    try { 
    Cursor res = db.rawQuery("select * from user where username='"+name+"' and password='"+pword+"'", null); 

     int count = res.getCount(); 

     //res.moveToFirst(); //Remove this line (It may be crashing because of this line.) 
     if (count == 0) 
     { 
      result = false; 
     } 
     else{ 
     res.moveToFirst(); 
     result = true; 
     } 
    } 
     catch (SQLiteException se) { 
      Log.e(getClass().getSimpleName(), "Could not log in"); 
     } 
     return result; 
     //return true; 
    } 
+0

Спот-разница - не полезный ответ , –

+0

@CL .... Если вы знаете ответ, ответьте на это. Я видел, что ты всегда посвящаешь кому-то ответ, но никогда не даешь решения. – samsad

+0

@samsad, пожалуйста, будьте терпеливы, может быть что-то не в порядке с нашими подходами (если это не так, пусть CL объяснит) – nobalG

Смежные вопросы