Android SQLite逻辑错误

Android SQLite逻辑错误,android,sqlite,Android,Sqlite,我在尝试通过QSB执行查询时遇到以下错误。我已经为QSB创建了具有必需列的数据库 11-30 20:12:49.805: E/DatabaseUtils(2116): android.database.sqlite.SQLiteException: SQL logic error or missing database 11-30 20:12:49.805: E/DatabaseUtils(2116): at android.database.sqlite.SQLiteQuery.native

我在尝试通过QSB执行查询时遇到以下错误。我已经为QSB创建了具有必需列的数据库

11-30 20:12:49.805: E/DatabaseUtils(2116): android.database.sqlite.SQLiteException: SQL logic error or missing database
11-30 20:12:49.805: E/DatabaseUtils(2116):  at android.database.sqlite.SQLiteQuery.native_fill_window(Native Method)
11-30 20:12:49.805: E/DatabaseUtils(2116):  at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:75)
11-30 20:12:49.805: E/DatabaseUtils(2116):  at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:288)
11-30 20:12:49.805: E/DatabaseUtils(2116):  at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:269)
11-30 20:12:49.805: E/DatabaseUtils(2116):  at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:171)
11-30 20:12:49.805: E/DatabaseUtils(2116):  at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:248)
11-30 20:12:49.805: E/DatabaseUtils(2116):  at com.simple.search.DatabaseHelper.query(DatabaseHelper.java:65)
11-30 20:12:49.805: E/DatabaseUtils(2116):  at com.simple.search.DatabaseHelper.getRecordMatches(DatabaseHelper.java:76)
DatabaseHelper.query

private Cursor query(String selection, String[] selectionArgs,
        String[] columns) {
    SQLiteDatabase mDb = getReadableDatabase();
    SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
    builder.setTables(DATABASE_TABLE);

    Cursor cursor = builder.query(mDb, columns,
            selection, selectionArgs, null, null, null);
    if (cursor == null) {
        return null;
    } else if (!cursor.moveToFirst()) {
        cursor.close();
        return null;
    }
    return cursor;
}
public Cursor getRecordMatches(String query, String[] columns) {
    String selection = SearchManager.SUGGEST_COLUMN_TEXT_1 + " MATCH ?";
    String[] selectionArgs = new String[] {query+"*"};

    return query(selection, selectionArgs, columns);
}

public Cursor getRecord(String rowId, String[] columns) {
    String selection = "rowid = ?";
    String[] selectionArgs = new String[] {rowId};

    return query(selection, selectionArgs, columns);
}

编辑:添加了getrecordmatches,添加了getrecord我用一个完全不同的光标解决了这个问题。这是原始的,但它的工作

private Cursor query(String selection, String[] selectionArgs,
        String[] columns) {
    Log.d(Tag.getTag(this),
            ("selection : " + selection + ", selectionArgs[0] :"
                    + selectionArgs[0] + ", columns :" + columns));
    SQLiteDatabase mDb = getReadableDatabase();
    String query = selectionArgs[0];
    Cursor cursor = mDb
            .rawQuery(
                    "SELECT " + columns[0] +", "+ columns[1] + " FROM " + DATABASE_TABLE + " WHERE " + columns[1] + " LIKE ?",
                    new String[] { "%" + query  + "%" });
     if (cursor == null) {
     return null;
     } else if (!cursor.moveToFirst()) {
     cursor.close();
     return null;
     }
     return cursor;

}

您能给出参数值(选择、selectionArgs和列)吗exception@pdiddy谢谢你的回复,伙计。添加了所需的代码。谢谢您提供的代码,但是您是否可以为Selection、SelectionArgs和给出该错误的列提供准确的值。我的代码没有任何问题这就是为什么我要问。。。。也许看到这些参数的值会更有用helpful@pdiddy对不起,迟了答复。互联网问题<代码>选择:建议\u文本\u 1匹配?,selectionArgs[0]:*,columns[]:{BaseColumns.\u ID,SearchManager.suggest\u COLUMN\u文本\u 1}