Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有匹配项的SQLite查询错误_Android_Sqlite - Fatal编程技术网

Android 具有匹配项的SQLite查询错误

Android 具有匹配项的SQLite查询错误,android,sqlite,Android,Sqlite,我使用以下查询在SQLite中执行搜索 public MatrixCursor listViewCursor(String query) { open(); Cursor dcursor = null; MatrixCursor cursor = new MatrixCursor(listviewColumns); Object[] listviewarray = null; String[] selectionArgs = new String[] {

我使用以下查询在SQLite中执行搜索

public MatrixCursor listViewCursor(String query) {
    open();
    Cursor dcursor = null;
    MatrixCursor cursor = new MatrixCursor(listviewColumns);
    Object[] listviewarray = null;
    String[] selectionArgs = new String[] { query };
    System.out.println("Selectionarg = "+selectionArgs.toString());
    if (query == null) {
        try {// this works
            dcursor = database.query(LA_DATABASE_TABLE, listviewColumns,
                    null, null, null, null, LA_TEST_NAME);
        } catch (Exception e) {
            e.printStackTrace();
        }
    } else
        try {// this don't work!!!
            dcursor = database.query(LA_DATABASE_TABLE, listviewColumns,
                    LA_TEST_NAME + " MATCH ?", new String[] { query }, null, null, null);
        } catch (Exception e) {
            e.printStackTrace();
        }
    System.out.println("dcursor count = "+dcursor.getCount());
    listviewarray = new Object[dcursor.getColumnCount()];
    if (dcursor.moveToFirst()) {
        do {

            for (int i = 0; i < dcursor.getColumnCount(); i++) {
                listviewarray[i] = dcursor.getString(i);
            }
            cursor.addRow(listviewarray);
            System.out.println(dcursor.getString(1));
        } while (dcursor.moveToNext());
    } else
        return null;
    close();
    return cursor;

}
为什么会这样

编辑:


我使用
dcursor=database.query(LA_database_TABLE,listviewColumns,LA_TEST_NAME+“像”%”+query+“%”,null,null,null,null)修复了它
没有被正确替换。

请参见此处的FTS3和FTS4简介

并确保创建了这样的虚拟表

 CREATE VIRTUAL TABLE enrondata1 USING fts3(content TEXT);
不是这样的普通人

CREATE TABLE enrondata2(content TEXT);

我认为您应该将null传递给不可为null的cullumn,再次检查参数,并通知meI使用
dcursor=database.query(LA_database_TABLE,listviewColumns,LA_TEST_NAME+“LIKE”%”+query+“%”,null,null,null,null,null)
未正确更换。接受这个答案是因为这是唯一的答案。
CREATE TABLE enrondata2(content TEXT);