我有這樣的代碼:的Android SQLite的查詢與「WHERE」選擇論不工作
if (idListe.size()>0)
{
strIdArray = new String[idListe.size()];
idListe.toArray(strIdArray);
//my query starts here
c = dbHelper.query(true, DataBaseHelper.DB_COURSE,
dbHelper.COURSE_TABLE_AUFGABEN, new String[] {
dbHelper.COURSE_AUFGABEN_COLUMN_ID,
dbHelper.COURSE_AUFGABEN_COLUMN_ADRESSID,
dbHelper.COURSE_AUFGABEN_COLUMN_KURSART }, dbHelper.COURSE_AUFGABEN_COLUMN_ID + " = ?",strIdArray,
dbHelper.COURSE_AUFGABEN_COLUMN_KURSART, null,
dbHelper.COURSE_AUFGABEN_COLUMN_KURSART + " ASC", null);
startManagingCursor(c);
}
並獲得了這個錯誤:
01-15 13:01:27.489: E/AndroidRuntime(703): android.database.sqlite.SQLiteException: bind or column index out of range: handle 0x3fd490
我試過幾種組合,結果總是保持一樣。如果strIdArray的大小爲'1',則查詢起作用。我在這裏做錯了什麼?
這很有道理。但是我怎樣才能在代碼中編寫多個? 我將不得不做一個非常大的字符串: for(String t:strIdArray)... dbHelper.COURSE_AUFGABEN_COLUMN_ID +「=?」 然後最後將字符串t設置爲我的where子句。那是對的嗎?這將是一個非常奇怪的做法... – ezcoding 2012-01-15 12:56:21
你的回答是正確的。我用我的方法,並製作了一個大字符串,它的工作原理!謝謝 – ezcoding 2012-01-15 13:07:50