0

我想从数据库中检索数据并将其显示在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)
4

2 回答 2

2

我和你有同样的问题,当我看你的日志猫时

 java.lang.NullPointerException ,

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

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

于 2013-01-24T20:39:24.123 回答
0

我认为您不能只登录ArrayList<String>从返回的 logcat,getMeterNUmber2因为它是一个列表。您需要首先从那里检索单个字符串值:将 ArrayList 转换为 string 的最佳方法

于 2013-01-24T20:17:45.613 回答