从SQLite列添加数据

时间:2013-03-10 00:50:18

标签: java android sqlite android-sqlite

我正在尝试从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语句,当它就位时它不会提取任何数据。当我删除它时,它会从正确的数据中提取正确的数据。

2 个答案:

答案 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());