Android 带有多个条件的WHERE子句不起作用
在尝试以下代码时,我得到了错误:Android 带有多个条件的WHERE子句不起作用,android,database,sqlite,Android,Database,Sqlite,在尝试以下代码时,我得到了错误: Cursor cursor1 = db.rawQuery("SELECT * FROM " + TABLE_TRAVEL + " WHERE " + KEY_CITY + " = ? AND " + KEY_STATE + " = ?",null); E/AndroidRuntime:致命异常:主 进程:com.anvipuri.databaseplaces,PID:11773 java.lang.RuntimeExcepti
Cursor cursor1 = db.rawQuery("SELECT * FROM " + TABLE_TRAVEL +
" WHERE " + KEY_CITY + " = ? AND " + KEY_STATE + " = ?",null);
E/AndroidRuntime:致命异常:主
进程:com.anvipuri.databaseplaces,PID:11773
java.lang.RuntimeException:无法启动活动
ComponentInfo{com.anvipuri.databaseplaces/com.anvipuri.databaseplaces.MainActivity}:
android.database.CursorIndexOutOfBoundsException:请求索引-1,
6号的
在
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
在
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
位于android.app.ActivityThread.-wrap12(ActivityThread.java)
在
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:154)
位于android.app.ActivityThread.main(ActivityThread.java:6119)
位于java.lang.reflect.Method.invoke(本机方法)
在
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
原因:android.database.CursorIndexOutOfBoundsException:索引-1
请给我6号的
在
android.database.AbstractCursor.checkPosition(AbstractCursor.java:460)
在
android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
在
android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
在
DatabaseHelper.findOnep(DatabaseHelper.java:132)
在
com.anvipuri.databaseplaces.MainActivity.onCreate(MainActivity.java:119)
位于android.app.Activity.performCreate(Activity.java:6679)
在
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
在
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
在
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
位于android.app.ActivityThread.-wrap12(ActivityThread.java)
在
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:154)
位于android.app.ActivityThread.main(ActivityThread.java:6119)
位于java.lang.reflect.Method.invoke(本机方法)
在
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
你应该这样做
if(cursor.moveToFirst()) {
do {
Obj obj = createObjectFromCursor(cursor);
} while(cursor.moveToNext());
}
或者至少您不应该忘记调用moveToPosition()
或moveToFirst()
,以便从默认的-1
初始化光标的索引