Мое приложение Android падает с этой ошибкой:
E/AndroidRuntime( 315): Caused by: android.database.sqlite.SQLiteException: bind or column index out of range: handle 0x3470a0
...
E/AndroidRuntime( 315): at lee.medical.icu.dataentry.db.PatientInfoDbHelper.getTests(PatientInfoDbHelper.java:163)
На этот бит кода натыкается:
SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] columns = {C_LOCATION, C_TESTS};
String selection = "? = '?' and ? = '?'";
String[] selectionArgs = {C_LAST, lastName, C_FIRST, firstName};
Cursor cursor = db.query(TABLE, columns, selection, selectionArgs,
null, null, null); // line 163
Что может означать эта ошибка?
(пара замечаний: C_LOCATION
, C_TESTS
, C_LAST
и C_FIRST
- это столбцы в моей базе данных. lastName
и firstName
- аргументы метода, которые не требуют пояснений.)
Редактировать : Мне пришлось немного поиграть с решением antlersoft, чтобы оно заработало. В случае, если кто-то с такой же проблемой сталкивается с этим вопросом, решение в моем случае состояло в том, чтобы изменить selection
на:
String selection = C_LAST + " = ? and " + C_FIRST + " = ?"