0

您好,我的查询有问题。我想我错过了什么,但我不知道是什么,所以我需要你的帮助

它返回 java.lang.NullPointerException

 import android.annotation.TargetApi;
    import android.app.Activity;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.widget.TextView;
    import android.util.Log;

    @TargetApi(16)
    public class logged extends Activity{
        public TextView msg;
        private SQLiteDatabase myDB = null;
        public void onCreate(Bundle savedInstanceState){
             super.onCreate(savedInstanceState);
             setContentView(R.layout.logged);
             msg = (TextView) findViewById(R.id.msg);
             myDB.openDatabase("data/data/com.example.login2/databases/aeglea", null, SQLiteDatabase.OPEN_READONLY);

             try{
//here is the problem. Both kind of queries return the same error
                 //Cursor cur = myDB.query("user_login", new String[] {"username"}, null, null, null, null, null);
                 Cursor cur = myDB.rawQuery("SELECT username FROM user_login", null);
                 msg.setText("Hello");
             }catch (Exception e1){
                 Log.e("DATABAZA","hola "+e1);
                 msg.setText("No Hello you creep");
             }

        }


    }

我的数据库 OnCreate 是

public void onCreate(SQLiteDatabase db) {
        String CREATE_LOGIN_TABLE = "CREATE TABLE " + TABLE_NAME + "("
                + KEY_UID + " INTEGER PRIMARY KEY,"
                + KEY_NAME + " TEXT,"
                + KEY_LAST + " TEXT,"
                + KEY_EMAIL + " TEXT UNIQUE,"
                + KEY_USERNAME + " TEXT UNIQUE" + ")";

        db.execSQL(CREATE_LOGIN_TABLE);


    }

提前致谢

4

1 回答 1

3

改写

private SQLiteDatabase myDB = null;

mDB为空,您需要在引用它之前对其进行初始化。

尝试使用您的扩展 SQLiteOpenHelper 类:

Database openHelper = new Database(this);
myDB = openHelper.getWritableDatabase(); // or getReadableDatabase();

并删除:

myDB.openDatabase("data/data/com.example.login2/databases/aeglea", null, SQLiteDatabase.OPEN_READONLY);

现在mDB.query()应该工作了!

于 2012-08-23T18:52:11.577 回答