2011-03-09 23 views
1

查詢時,我在這行收到這個異常「綁定或列索引超出範圍」:SQLiteException Android中

Cursor cursor = db.query(TABLE_NAME, null, ID, new String[] { id }, null, null, null); 

我要檢查,如果在數據庫中存在給定id,但總是查詢扔這個例外,我不知道什麼是錯的。我試過這個,但它是相同的:

Cursor cursor = db.query(TABLE_NAME, null, ID+" = ?", new String[] { id }, null, null, null); 

這是我編程的方法。如果有什麼錯在這裏,請告訴我:

public boolean existsAcc(String id) 
    { 
     //Check the parameters 
     if (id == null) 
     { 
      throw new IllegalArgumentException(
        "The id parameter cannot be null"); 
     } 
     SQLiteDatabase db = getReadableDatabase(); 

     Cursor cursor = db.query(TABLE_NAME, null, ID, new String[] { id }, null, null, null); 

     if (!cursor.moveToFirst()) 
     { 
      cursor.close(); 
      return false; 
     } 

     cursor.close(); 

     return true; 
    } 
+1

這裏id是字符串還是整數? –

+0

這是一個字符串。 – Adrian

回答

2

我不知道爲什麼奇拉格刪除他的回答,但他分辯。更改

Cursor cursor = db.query(TABLE_NAME, null, ID, new String[] { id }, null, null, null); 

Cursor cursor = db.query(TABLE_NAME, null, ID + " = '" + id + "'", null, null, null, null); 

的伎倆。