Android 从数据库获取登录的字符串值
我正在开发一个android应用程序,它有三种类型的用户登录活动,实现三种类型的用户级别。我创建了登录活动,它使用给定的登录用户名从数据库中获取用户级别和密码,以便使用意图启动相应的活动。现在我在数据库方法上得到一个空指针异常 数据库获取代码为:Android 从数据库获取登录的字符串值,android,sqlite,Android,Sqlite,我正在开发一个android应用程序,它有三种类型的用户登录活动,实现三种类型的用户级别。我创建了登录活动,它使用给定的登录用户名从数据库中获取用户级别和密码,以便使用意图启动相应的活动。现在我在数据库方法上得到一个空指针异常 数据库获取代码为: public String fetchPassword(String user_name) { Cursor cursor; SQLiteDatabase db = this.getReadableDa
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;
}
这是你应该得到它的地方
String result = cursor.getString(cursor.getColumnIndex("content"));
如果数据库中没有记录,则会出现空指针,因为光标为空。您需要检查它是否正确,然后继续
cursor.isAfterLast();
如果为空,则返回true
logcat堆栈跟踪将是开始查找的好地方。请发布您的logcaterror@TeRRo无法复制logcat@user3780419在logcat中,您可以看到一个选项export log(导出日志),您可以将logacat文件夹保存在此处,并请在保存之前缩进logcat Query从不返回null;如果未找到任何内容,则游标对象为空,即moveToFirst返回false。
cursor.isAfterLast();