Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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
Java WHERE子句不起作用,不返回所需的值_Java_Android_Sqlite - Fatal编程技术网

Java WHERE子句不起作用,不返回所需的值

Java WHERE子句不起作用,不返回所需的值,java,android,sqlite,Java,Android,Sqlite,看看我的要求。我显式地指定了参数,但是请求没有返回正确的结果。 我知道有很多关于这个问题的话题,但我没有看到像我这样的请求。 请帮忙 items = new ArrayList<>(); items_test = new ArrayList<>(); db = getBaseContext().openOrCreateDatabase("budget_app.db", MODE_PRIVATE,

看看我的要求。我显式地指定了参数,但是请求没有返回正确的结果。 我知道有很多关于这个问题的话题,但我没有看到像我这样的请求。 请帮忙

items = new ArrayList<>();
        items_test = new ArrayList<>();
        db = getBaseContext().openOrCreateDatabase("budget_app.db", MODE_PRIVATE,
                null);
//
        Cursor queryt = db.rawQuery("SELECT * FROM budget;", null);
        if (queryt.moveToFirst()) {
            while (queryt.moveToNext()) {
                String type = queryt.getString(0);
                String name = queryt.getString(1);
                String date = queryt.getString(2);
                Integer value = queryt.getInt(3);

                items_test.add(0, name);
            }
        }
        Log.d("Check", String.valueOf(items_test));


        Cursor queryt2 = db.rawQuery("SELECT * FROM budget WHERE name = \"loh\"", null);
        if (queryt2.moveToFirst()) {
            while (queryt2.moveToNext()) {
                String type = queryt2.getString(0);
                String name = queryt2.getString(1);
                String date = queryt2.getString(2);
                Integer value = queryt2.getInt(3);

                items_test2.add(0, name);
            }
        }
        Log.d("Check", String.valueOf(items_test2));

items=newarraylist();
items_test=new ArrayList();
db=getBaseContext().openOrCreateDatabase(“budget\u app.db”,MODE\u PRIVATE,
无效);
//
游标queryt=db.rawQuery(“从预算中选择*”,null);
if(queryt.moveToFirst()){
while(queryt.moveToNext()){
字符串类型=queryt.getString(0);
String name=queryt.getString(1);
字符串日期=queryt.getString(2);
整数值=queryt.getInt(3);
测试项添加(0,名称);
}
}
Log.d(“检查”,String.valueOf(items_test));
游标queryt2=db.rawQuery(“从预算中选择*,其中名称=\“loh\”,null);
if(queryt2.moveToFirst()){
while(queryt2.moveToNext()){
字符串类型=queryt2.getString(0);
String name=queryt2.getString(1);
字符串日期=queryt2.getString(2);
整数值=queryt2.getInt(3);
项目2.add(0,名称);
}
}
Log.d(“检查”,String.valueOf(items_test2));
以下是我的输出:

找到了错误

你在打电话吗

if (queryt2.moveToFirst()) {
        while (queryt2.moveToNext()) { 
    ...
这会将光标移动到第二个位置(索引1)

i、 e.如果您将代码更改为“where name in('loh','fju');”您应该只得到一个结果,而不是使用现有代码得到两个结果

相反,你可以试试看

 queryt2.moveToFirst();
 while(!queryt2.isAfterLast()) {
    ...
    queryt2.moveToNext();
 }
     

还记得在使用后关闭光标。(或使用资源试用)

@Angel Koh,ty,但我仍然可以null@AngelKoh,是的,你是对的,现在我得到了一个空列表,但仍然?它不应该像name='loh'不带“@Angel Koh,不,我关闭了所有东西-它没有帮助@javdromero,没有区别你也可以跳过moveToFirst(),使用while(q.moveToNext())直接。光标在查询后立即自动位于第一个位置。