Android 具有多个参数的SQLite查询

Android 具有多个参数的SQLite查询,android,sql,sqlite,Android,Sql,Sqlite,我正在尝试查询SQLite表中的某一行,该行的开始时间和结束时间之间为一周中的同一天,如下所示: String whereClause = String.format("%s = '?' AND %s <= '?' %s > '?'", Shift.PROP_DAY_OF_THE_WEEK, Shift.PROP_START_TIME, Shift.PROP_END_TIME); String[] whereargs =

我正在尝试查询SQLite表中的某一行,该行的开始时间和结束时间之间为一周中的同一天,如下所示:

    String whereClause = String.format("%s = '?' AND %s <= '?' %s > '?'",
            Shift.PROP_DAY_OF_THE_WEEK, Shift.PROP_START_TIME,
            Shift.PROP_END_TIME);
    String[] whereargs = new String[] { String.valueOf(dow), time, time };
    Cursor cursor = db.rawQuery(whereClause, whereargs);
String whereClause=String.format(“%s=”?“和%s'?”,
Shift.PROP\u本周的第天,Shift.PROP\u开始时间,
班次、道具、结束时间);
String[]wherergs=新字符串[]{String.valueOf(dow),time,time};
Cursor=db.rawQuery(where子句,wherergs);
但是,我得到以下Logcat错误

03-30 22:46:02.827: E/AndroidRuntime(11507): android.database.sqlite.SQLiteException: near "dayOfTheWeek": syntax error (code 1): , while compiling: dayOfTheWeek = '?' AND startTime <= '?' endTime > '?'
03-30 22:46:02.827:E/AndroidRuntime(11507):android.database.sqlite.SQLiteException:靠近“DayOfWeek”:编译时出现语法错误(代码1)::DayOfWeek=“?”和startTime“?”
我在问号(?)周围加了一个引号(')。如果没有单一报价,它也无法正常工作。我添加了它们,因为sql语句可能对是否有引号很敏感。如果我走错了方向,请告诉我。

%s='?'和%s'?'”

忘记了第二个和第三个条件之间的AND

“%s=”?“和%s'?”


然后测试它是否需要“”,

除了缺少的
之外,您在参数标记周围放置了字符串分隔符,这会阻止它们被识别为参数。
“?”
只是一个包含问号的字符串;对于参数,请使用普通的

String.format(“%s=”和“%s?”,…);
此外,当使用
rawQuery
时,必须写出整个SQL查询。 要像您正在尝试的那样使用where子句,您需要
query

Cursor Cursor=db.query(“MyTableName”,
null、//或列列表
where子句,where rgs,
空,空,空);

03-31 12:24:35.797:E/AndroidRuntime(18720):android.database.sqlite.SQLiteException:靠近“DayOfWeek”:编译时出现语法错误(代码1)::DayOfWeek=?开始时间呢?当然还是不行。。。没有表名我怎么能查询?!我仍然无法在索引3处绑定参数,因为索引超出范围。该语句有0个参数。错误,因为我使用“%s=”?“和%s“?”中的“””来向Patashu提供反馈。现在一切都好了。非常感谢。它仍然无法工作03-31 12:29:38.487:E/AndroidRuntime(19174):android.database.sqlite.SQLiteException:接近“DayOfWeek”:编译时出现语法错误(代码1)::DayOfWeek=“?”和startTime“?”