从sqlite中检索数据:NullPointerException

时间:2013-01-24 19:53:08

标签: android sqlite

我想从数据库中检索数据并将其显示在LOG上,这里是我的代码:

 String dd = "1/23/2013";

  String sp = "Sky Storm";

 Log.d("Checking",db.getMeterNUmber2(dd,sp).toString());

并且getMeterNUmber2在DBAdapter中,我正在寻找的数据在数据库中,所以我只想检索它。

我的数据库适配器:

public ArrayList<String> getMeterNUmber2(String date , String Vname) throws SQLException {    

    String[] whereArgs = new String[]{date,Vname}; 

    Cursor mcursor = db.rawQuery("SELECT MeterNumber FROM " + SCAN_TABLE + " WHERE  Date = ? AND VendorName = ? ",whereArgs);

    ArrayList<String> results = new ArrayList<String>();
    while (mcursor.moveToNext()) {
        results.add(mcursor.getString(0));
    }

    return results;

}

我在logcat中遇到错误:

01-24 19:57:13.590: E/AndroidRuntime(11662): FATAL EXCEPTION: main
01-24 19:57:13.590: E/AndroidRuntime(11662): java.lang.NullPointerException
01-24 19:57:13.590: E/AndroidRuntime(11662):    at scann.barcode.scan.DBAdapter.getMeterNUmber2(DBAdapter.java:303)
01-24 19:57:13.590: E/AndroidRuntime(11662):    at scann.barcode.scan.Result$1.onClick(Result.java:104)

2 个答案:

答案 0 :(得分:1)

我遇到了和你一样的问题,当我看到你的日志猫时

 java.lang.NullPointerException ,

它返回空值,这意味着它不会读入您的数据库,

请检查您是否已打开数据库,例如:db.open() and close

答案 1 :(得分:0)

我认为您不能只登录ArrayList<String>返回的logcat getMeterNUmber2,因为它是一个列表。您需要首先从那里检索单个字符串值:Best way to convert an ArrayList to a string