大家好, 我是 android 的新手,但非常热衷于创建我的第一个应用程序 :) 所以这可能不是我关于数据库的最后一个问题 :)
我创建了一个带有教程的数据库,我可以向其中添加项目、删除项目等。我想在其中查找项目并将结果带到 cretad ListView 中。到目前为止:
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, todoItems));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
hornot info = new hornot(this);
info.open();
Cursor c = info.getSearched("108");
if (c.moveToFirst())
{
do{
todoItems.add(c.getString(0) + " " + c.getString(1) + " " + c.getString(2));
}while (c.moveToNext());
}
if (todoItems.size() > 0)
{
lv.setAdapter(new ArrayAdapter<String>(sqlsearch.this,android.R.layout.simple_list_item_1, todoItems));
}
info.close();
}
在我的数据库中,getSearched() 函数如下所示:
public Cursor getSearched(String qq) {
String[] columns = new String[]{KEY_ROWID, KEY_NAME, KEY_HOTNESS};
return ourDatabase.query(DATABASE_TABLE, columns, qq , null, null, null, null);
}
如您所见,我想选择其中包含 qq 的行。但我想选择 KEY_ROWID 等于 108 的行。此刻我将整个表放入 ListView 中,而不仅仅是想要的行。这段代码有什么问题?
提前致谢
最佳答案
我不知道我是否明白你想要什么,但如果你想获得 KEY_ROWID
108 的记录,请使用查询方法的第三个参数(即 WHERE
查询的选择子句):
public Cursor getSearched(String qq) {
String[] columns = new String[]{KEY_ROWID, KEY_NAME, KEY_HOTNESS};
return ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + " = " + qq , null, null, null, null);
}
关于Android SQL 数据库找不到正确的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9445411/