У моего приложения Android есть 2 таблицы Projects
и Tasks
.Курсор не работает в Android sqlite
Каждый Project
может иметь несколько Tasks
.
Как ниже
Теперь я хочу суммировать все значения удельного веса одного 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);
Это ничего не добавляет. Может ли кто-нибудь помочь исправить это, пожалуйста?
Я не вижу предложения WHERE в вашем SQL. Тогда, конечно, вы получите все строки в результате. –
Я не уверен, но насколько я знаю! DBHelper.COLUMN_TASK_PROJECT_ID + "=" + String.valueOf (projectId) - это предложение WHERE во втором курсоре, которое я использовал ... –
Таким образом, получается строка, и вы можете напечатать эту строку. Это поможет в отладке SQL. –