2013-12-19 26 views
1

textAs標題描述我試圖從表中獲取所有行,其中列的字符串包含任何位置的字符串。但他們的方式我現在這樣做總是返回-1行。 這就是我現在要做的,但我不知道我可能會做錯什麼。建議?Android SQLite獲取列包含字符串的所有行總是返回-1

Cursor cursor = database.query(DBHelper.TABLE_RECENT, null, DBHelper.COLUMN_TEXT+ " LIKE '%"+club_id+"%'", null, null, null, null); 
+0

有沒有這樣的事情返回-1行。具體問題是什麼?有什麼異常?你如何使用返回的光標? – laalto

回答

3

在從遊標或恰在查詢行獲取數據之前,只需編寫cursor.moveToFirst();

希望它能幫助你。

+0

你的問題解決了嗎? @just_user – Andrain

+0

還沒有,我嘗試了entreco的響應並得到一個異常:java.lang.IllegalArgumentException:由於索引超出範圍,無法在索引1處綁定參數。該語句有0個參數。 但是,遊標有-1行,因此moveToFirst也無法正常工作。 –

+0

你有沒有檢查你的遊標值?或者也檢查cursor.getcount()的值@just_user – Andrain

0

我想,你是錯誤的解釋查詢的結構。第二個參數是你想要選擇的。如「選擇列1,列2等下面是從我的代碼行,它爲我工作。

Cursor cursor = db.query(table_employees, new String[] {KEY_ID, KEY_NAME,KEY_DEPARTMENT, KEY_PHONE_NUMBER, KEY_SALARY}, KEY_ID + "=?", new String[] { String.valueOf(id) }, null, null, null, null); 

這裏的‘新的String [] {KEY_ID .....’,第二個參數, 。被列名,如果您想選擇

OR

交替,你可以簡單地做如下:

String query = "Select * from "+DB_TABLE+ "Where" +column1 + "=" + t +"and"+ column2 + "=" +tt 
db.rawQuery(query); 
+0

查詢是完美的問題。 – Andrain

0

如果你這樣做,

String query = "Select * FROM Product where name LIKE '%" + Text + "%'" 
Log.d("search query", query); 
Cursor c = db.rawQuery(query, null); 
c.moveToFirst(); 
相關問題