SELECT WHERE sql查询Android问题

时间:2011-05-09 19:28:07

标签: android sql select where

我是编程的完全新手,并且在使用WHERE year_id ='一个选定年份变量'实现SELECT查询时遇到问题,以在列表视图中显示结果。我的代码如下所示显示存储在数据库中的所有条目。如何改变它以将其过滤到year_id中的选定年份,因为我尝试做的任何事情都会导致我的应用崩溃?我花了几个小时寻找教程和类似的问题,但我仍然在答案中丢失.......真的很感激一些帮助

MyDBHelper mh = new MyDBHelper(this);
mDb = mh.getWritableDatabase();
mCursor = mDb.query("tracker", null, null, null, null, null,
    "category_name ASC");
startManagingCursor(mCursor);

int view[] = {R.id.categoryNameView, R.id.dataView, R.id.placeView, R.id.amountView};
String col[] = { "category_name", "date", "place", "amount"};

SimpleCursorAdapter ca = new SimpleCursorAdapter(
        this, R.layout.display_item, mCursor, col, view);

DisplayAllView = (ListView) findViewById(R.id.DisplayDateListView);
DisplayAllView.setAdapter(ca);

1 个答案:

答案 0 :(得分:2)

查看db.query

的javadoc

3d和第4个arg是

  

选择过滤器声明哪个   要返回的行,格式化为SQL   WHERE子句(不包括WHERE   本身)。传递null将返回所有   给定表的行。   selectionArgs你可以包含?   选择,将被替换   来自selectionArgs的值   命令它们出现在   选择。值将绑定为   字符串。

所以你会做类似

的事情
mCursor = mDb.query("tracker", null, 
          "year_id = ?", new String[] { String.valueOf(year)}, 
          null, null,  "category_name ASC");