2016-08-26 3 views
0

Мое приложение рушится из-за этого запроса. что я должен делать, чтобы знать, в чем проблема внутри? Это кажется правильным мнеКак знать, что запрос работает или нет?

public User getUser(String userName) { 
    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = null; 

    cursor = db.query("LOGIN", new String[] { "USERNAME", 
      "PASSWORD", "STATUS" }, "USERNAME" + "=?", 
      new String[] { String.valueOf(userName) }, null, null, null, null); 
    if (cursor != null) 
    { 
    cursor.moveToFirst(); 
    } 
    User user = new User(); 
    user.setName(cursor.getString(cursor.getColumnIndex("USERNAME"))); 
    user.setPassword(cursor.getString(cursor.getColumnIndex("PASSWORD"))); 
    user.setstatus(cursor.getString(cursor.getColumnIndex("STATUS"))); 

    return user; 

} 
+2

Пожалуйста, оставьте свои журналы ошибок –

+2

скорее всего 'db.query' возвращает пустой' Cursor' – pskink

+0

https://kripken.github.io/sql.js/GUI/ –

ответ

1

Возможно, курсор возвращается Пустой/NULL курсор ... Теперь вы поставили чек на него, как

if (cursor != null) 
{ 
cursor.moveToFirst(); 
} 

Но после этого вы сразу пытаетесь установить ваш пользовательские данные от курсора без проверки, если она равна нулю, попробуйте вместо этого:

User user=null; 
if (cursor != null) 
{ 
user= new User(); 
cursor.moveToFirst(); 
user.setName(cursor.getString(cursor.getColumnIndex("USERNAME"))); 
user.setPassword(cursor.getString(cursor.getColumnIndex("PASSWORD"))); 
user.setstatus(cursor.getString(cursor.getColumnIndex("STATUS"))); 
} 

if(user==null){ 
    // your cursor returned null... check your query/db 
} 

//this will return a null object if your cursor returns null... you can handle it later 
return user; 
0

вы можете проверить запрос, используя SQliteManger или ссылку открытым и написать свой запрос, то вы найдете его правильное или не

https://www.piliapp.com/mysql-syntax-check/

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