2014-07-01 71 views
1

正在开发一个android应用程序,该应用程序针对实现三种类型的用户级别的三种类型的用户开展了登录活动。我创建了登录活动,它使用给定的登录用户名从数据库提取用户级别和密码,以便使用意图启动相应的活动。现在我在数据库方法上得到一个空指针异常。从数据库中获取用于登录的字符串值

分贝取代码:

 public String fetchPassword(String user_name) { 
     Cursor cursor; 

     SQLiteDatabase db = this.getReadableDatabase(); 

     cursor = db.query(DATABASE_TABLE_NAME_1, 
       new String[] { COLUMN_USER_LEVEL, COLUMN_USER_NAME }, 
       COLUMN_USER_NAME + "='" + user_name + "'", null, null, null, null); 

     cursor.moveToFirst(); 

      String result = cursor.getString(cursor.getColumnIndex("content")); 

      return result; 
    } 

    public String fetchUserLevel(String user_name) { 
     Cursor cursor; 

     SQLiteDatabase db = this.getReadableDatabase(); 

     cursor = db.query(DATABASE_TABLE_NAME_1, 
       new String[] { COLUMN_PASSWORD, COLUMN_USER_NAME }, 
       COLUMN_USER_NAME + "='" + user_name + "'", null, null, null, null); 

     cursor.moveToFirst(); 

      String result = cursor.getString(cursor.getColumnIndex("content")); 

     return result; 
    } 
+1

普勒斯发表您的logcat错误 – TeRRo

+0

@TeRRo无法复制的logcat – user3780419

+0

@ user3780419在logcat的,你可以看到一个选项导出日志从那里你可以在这里保存logacat文件夹,请在保存 – user285oo6

回答

-1
 cursor.moveToFirst(); 

THS是你应该得到它

 String result = cursor.getString(cursor.getColumnIndex("content")); 

如果在数据库中没有记录,将会有一个空指针因为光标是空的。你需要检查它是否是,然后继续。

 cursor.isAfterLast(); 

如果它为空则返回true。

logcat堆栈跟踪将是一个很好的开始寻找的地方。

+0

'查询之前缩进logcat的()'从不返回'null';如果没有发现,游标对象是空的,即'moveToFirst()'返回'false'。 –

相关问题