0

sqliteデータベースから情報を要求しようとすると、次のエラーが発生します。

07-19 02:17:10.835: E/AndroidRuntime(689): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.bodprod.dkr/de.bodprod.dkr.MediNotmediList}: java.lang.IllegalArgumentException: You must supply an SQL string

私のデータベースリクエスト:

public ArrayList<HashMap<String,Object>> getAllNotmedis(){
    ArrayList<HashMap<String,Object>> notmediList = new ArrayList<HashMap<String,Object>>();
    String selectQuery = "SELECT medi_id, medi_wirk, medi_handel FROM dkr_medi_liste ORDER BY medi_wirk";
    Log.d("ALLNOTMEDIS",selectQuery);
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    HashMap<String , Object> notmedi_item;
    if (cursor.moveToFirst()) {
        do {
            notmedi_item = new HashMap<String, Object>();
            notmedi_item.put("sql_id", Integer.parseInt(cursor.getString(0)));
            notmedi_item.put("wirk", cursor.getString(1));
            notmedi_item.put("handel", unescape(cursor.getString(2)));
            notmediList.add(notmedi_item);
        } while (cursor.moveToNext());
    }
    cursor.close();
    db.close();
    return notmediList;
} 

この行はエラーになります:

    SQLiteDatabase db = this.getWritableDatabase();

なぜこのエラーになるのですか?データベースが存在し、データでいっぱいです...

4

3 に答える 3

1

エラーはonCreateセクションにありました。

で空白行を挿入しようとしましたdb.execSQL

SQLiteDatabase db = this.getWritableDatabase();メソッドを呼び出すため、この行でエラーが発生しますonCreate

于 2012-07-19T11:05:03.723 に答える
0
java.lang.IllegalArgumentException: You must supply an SQL string

rawQueryメソッドで無効なSQLクエリステートメントを渡すと、上記の例外が発生します。以下のステートメントに問題があるはずです。

= "SELECT medi_id, medi_wirk, medi_handel FROM dkr_medi_liste ORDER BY medi_wirk";
于 2012-07-19T02:57:29.707 に答える
0

アプリとデータベース間の接続として機能するデータベースアダプターを作成する必要があります

于 2012-07-19T02:58:33.717 に答える