2011-03-04 55 views
0
public Cursor fetchIsOverride(String username) { 
     int override = 1; 
     Cursor cursor = mDb.query(true, OVERRIDE_TABLE, new String[] {KEY_ROWID, KEY_USERNAME, KEY_ISOVERRIDE, KEY_FIRSTNAME, KEY_LASTNAME, KEY_EMAIL, KEY_HOMEPHONE, KEY_WORKPHONE, KEY_PICTURE}, KEY_USERNAME + "= '" + username +"' " + "AND " + KEY_ISOVERRIDE + "=" + override, null, null, null, null, null); 
     return cursor; 
    } 

我在表上有一行KEY_ISOVERRIDE值爲1,用戶名是我查詢。這是確定的。任何人都可以看到這個語法有什麼問題?我確定它在WHERE子句中,但據我所知可以。謝謝。這個SQLite查詢返回的遊標數爲0 ...我知道它應該至少有1個。有人可以看看嗎? (真正的快速)

+0

如果您的數據庫使用大小寫敏感的模式..請確保您傳遞與字段值匹配的用戶名的情況下... – Chandu

回答

0

我是一個白癡,包括moveToFirst();和一段時間循環,如:

while(moveToNext()) { 
    //stuff 
} 

對不起。但也許其他人也會這樣捕捉他們的錯誤。

0

如果您的usernameoverride字符串有任何標點符號,空格或其他不尋常的字符,可能需要轉義。最好使用參數綁定apis,而不是直接在SQL語句中插入字符串。

+0

的用戶名字符串是電子郵件地址,所以像'的emailadress @ email.com' ...但這不是問題,我有一個相同的查詢保存爲KEY_OVERRIDE =覆蓋WHERE子句,它工作得很好。 – JMRboosties

0

嘗試使用雙==,而不是單一的查詢的條件部分這樣

Cursor cursor = mDb.query(true, OVERRIDE_TABLE, new String[] {KEY_ROWID, KEY_USERNAME, KEY_ISOVERRIDE, KEY_FIRSTNAME, KEY_LASTNAME, KEY_EMAIL, KEY_HOMEPHONE, KEY_WORKPHONE, KEY_PICTURE}, KEY_USERNAME + "== '" + username +"' " + "AND " + KEY_ISOVERRIDE + "==" + override, null, null, null, null, null); 
-1

光標C = db.query( 「tbl_TEMP」,新的String [] { 「網站名稱」 +」姓名 「 」網站「 +」 爲網站 「 」類別「 +」 作爲品類」}, // 「網站名稱」 + 「=?」,新的String [] { 「iPhoneAppDeveloper」},NULL,NULL,空值); 的 「網站名稱」 + 「=?」,新的String [] { 「您的字符串找到perticular記錄FRM DB」},NULL,NULL,NULL);

if(c.moveToFirst()) { String name,website,categoty; int nameColumn = c.getColumnIndex(「name」); int websiteColumn = c.getColumnIndex(「website」); int categoryColumn = c.getColumnIndex(「category」);

  do 
      { 
       // Get the field values 
        name = c.getString(nameColumn); 
        TvXmlData.append("\n" +name); 
        website = c.getString(websiteColumn); 
        TvXmlData.append("\n " + website); 
        categoty = c.getString(categoryColumn); 
        TvXmlData.append("\n " + categoty); 

      } while (c.moveToNext()); 

    } 
    c.close(); 
    db.close(); 
相關問題