从SQLite数据库中检索数据

时间:2012-01-17 22:21:53

标签: android sqlite

我正在创建用户登录应用程序。我希望在用户登录布局的文本视图时显示用户的帐户信息。这是布局的图像。enter image description here

以下是我登录时获取用户数据的代码:

public Cursor getUserData(String username){
    Cursor UserDataCursor = getReadableDatabase().rawQuery(
            "SELECT * FROM " + USER_TABLE_NAME + " WHERE " + 
            USER_NAME + "='" + username+"'", null);
    return UserDataCursor;

以下是使用该类检索数据的代码:

                String email2 = cursor.getString(cursor.getColumnIndex("email"));
                String name2 = cursor.getString(cursor.getColumnIndex("name"));
                String pass2 = cursor.getString(cursor.getColumnIndex("pass"));
                String gender2 = cursor.getString(cursor.getColumnIndex("gender"));
                String date2 = cursor.getString(cursor.getColumnIndex("date"));
                String country2 = cursor.getString(cursor.getColumnIndex("country"));
                String reg2 = cursor.getString(cursor.getColumnIndex("reg"));
                data+=email2+" "+name2+" "+pass2+" "+gender2+" "+date2+" "+country2+" "+reg2+"\n" ;
                cursor.moveToNext();
            }

它给出了一个空指针异常。这有什么问题?我该如何解决?

1 个答案:

答案 0 :(得分:0)

我认为你不使用数据库适配器模式会让自己变得更加困难。

在这里查看一个如何为数据库设置更多抽象和错误处理的示例: http://www.devx.com/wireless/Article/40842/1954

很难验证您的代码,因为它与数据有关。您的列名可能有误(或者可能缺少一个)。您的数据类型可能有误。您可能会返回没有行的游标,您需要检查它。

是的,你在开始之前做了cursor.moveToFirst()吗?

此外,我们不知道发生错误的第70行是什么,因为在帖子中丢失了行号。