当前位置:  开发笔记 > 数据库 > 正文

如何按列过滤Android数据库

如何解决《如何按列过滤Android数据库》经验,为你挑选了1个好方法。

我正在为RC Cars编写Android应用程序.它使用SQLite数据库,并保存汽车的模型,汽车名称和其他变量.

这是我的代码:

public Cursor fetchAllNotes() {
  return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
    KEY_CARNAME, KEY_TRACKNAME, KEY_TRACKSIZE, KEY_TRACKTRACTION, KEY_TRACKSURFACE, KEY_BODYTYPE,
    KEY_COMMENTS}, KEY_CARNAME + "=" + "'MTX-4'", null, null, null, null);
}

如何仅显示carname列中指定的特定型号汽车的记录?到目前为止,我只能通过使用'MTX-4'或其他一些文字字符串来过滤结果.我需要能够用字符串变量替换它String carName或类似的东西,所以我可以通过用户定义的carname进行过滤.



1> Jim Blackler..:

将"MTX-4"替换为"?" 作为参数变量.然后将selectionArgs参数(在您的示例中为null)替换为您的参数列表,例如new String [] {"MTX-4"}或new String [] {carName}

以下代码段与您的代码相同.

return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
    KEY_CARNAME, KEY_TRACKNAME, KEY_TRACKSIZE, KEY_TRACKTRACTION, KEY_TRACKSURFACE, KEY_BODYTYPE, KEY_COMMENTS}, KEY_CARNAME + "=" + "?", new String[]{"MTX-4"}, null, null, null);


哎呀,打败它:p +1,这正是我要写的.实际上,我再添加一条评论.要使其成为用户定义的搜索字符串,只需添加"String carName"作为数据库查询的参数,然后将Jim的`new String [] {"MTX-4"}`替换为`new String [] { carName}`.如果你已经传递了一个字符串数组,那么你不需要打扰`new String []`部分.
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有