2016-08-26 5 views
0

Meine Anwendung stürzt aufgrund dieser Abfrage ab. Was sollte ich tun, um zu wissen, was das Problem ist? Es scheint mir richtigWie kann ich wissen, ob die Abfrage funktioniert oder nicht?

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

Bitte posten Sie Ihre Fehlerprotokolle –

+2

höchstwahrscheinlich 'db.query' gibt eine leere' Cursor' – pskink

+0

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

Antwort

1

Wahrscheinlich ist Ihr Cursor eine leere/NULL Cursor Rückkehr ... Jetzt haben Sie es als

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

einen Scheck setzen Aber danach Sie versuchen, direkt zu setzen Ihre Benutzerdaten aus dem Cursor, ohne zu überprüfen, ob es null ist, versuchen Sie stattdessen:

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; 
Verwandte Themen