我正在尝试从SQLite表的多个记录中添加信用评分。
每条记录都有一个名为信用评分的栏目,我想将它们全部加在一起,但我遇到了麻烦。
以下是代码:
String[] projection2 = { BorrowMeTable.COLUMN_CREDIT_SCORE };
Cursor databaseCursor2 = getContentResolver().query(uri, projection2,
null, null, null);
int number = 0;
if (databaseCursor2 != null) {
databaseCursor2.moveToFirst();
while (databaseCursor2.moveToNext()) {
number = number + databaseCursor2.getInt(
databaseCursor2.getColumnIndexOrThrow(
BorrowMeTable.COLUMN_CREDIT_SCORE));
}
}
Log.d("SCORE", Integer.toString(number));
问题是while
语句,当它就位时它不会提取任何数据。当我删除它时,它会从正确的数据中提取正确的数据。
答案 0 :(得分:1)
在SQLite中使用sum函数
Cursor cursor = sqliteDatabase2.rawQuery(
"SELECT SUM(COLUMN_CREDIT_SCORE) FROM BorrowMeTable", null);
您可以在ContentProvider中将此URI作为不同的URI进行匹配
然后只需获取标量值:
if(cursor.moveToFirst()) {
return cursor.getInt(0);
答案 1 :(得分:0)
使用do->同时从第一条记录开始
do{
number = number + databaseCursor2.getInt(
databaseCursor2.getColumnIndexOrThrow(
BorrowMeTable.COLUMN_CREDIT_SCORE));
}while (databaseCursor2.moveToNext());