游标在Android sqlite中不起作用

时间:2015-03-03 15:43:39

标签: android sql cursor android-sqlite

我的Android应用有2个表ProjectsTasks

每个Project可以有多个Tasks

如下所示

enter image description here

现在我想总结一下task

的所有比例值

我做到了..但问题是它从所有任务表中添加比例值!

我编码的光标如下

    public int sumproportion(long projectId){

    int value = 0;
    int p = 0;  

    Cursor cu = mDatabase.rawQuery("SELECT * FROM " + DBHelper.TABLE_TASKS, null);

    ArrayList temp = new ArrayList();
    if (cur != null) {
        if (cur.moveToFirst()) {
            do {
                temp.add(cur.getString(cur.getColumnIndex("proportion"))); // "Title" is the field name(column) of the Table                 
            } while (cur.moveToNext());
        }
    }       

    Object ia[] = temp.toArray();

    for(int i=0; i<ia.length; i++)
    {
    p = Integer.parseInt((String) ia[i]);   
    value = value + p;

    }
    System.out.println("Value is: " + value); 

    return value;       
}

当我在下面添加光标时

            Cursor cur = mDatabase.query(DBHelper.TABLE_TASKS, mAllColumns,
            DBHelper.COLUMN_TASK_PROJECT_ID + " ="+String.valueOf(projectId),
            null, null, null, null);

它不会添加任何内容。任何人都可以帮忙解决它吗?

1 个答案:

答案 0 :(得分:0)

首先,您可以使用此SELECT SUM(proportion) from TABLE_TASK之类的查询。 proportion应该有数字类型。

其次,验证您的Cursor返回任何行。如果没有行,可能会传递错误的projectId