2013-12-19 29 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(); 
相关问题