2013-03-10 90 views
0

我试图从SQLite表的多个记录中添加信用评分。从SQLite列添加数据

每条记录​​都有一个名为credit score的列,我想将它们加在一起,但我遇到了麻烦。

下面是代码:

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

游标中有多少条记录? – 2013-03-10 00:52:07

回答

1

使用和funstion SQLite中

Cursor cursor = sqliteDatabase2.rawQuery(
    "SELECT SUM(COLUMN_CREDIT_SCORE) FROM BorrowMeTable", null); 

您可以URI匹配这在你的ContentProvider作为一个不同的URI

然后,只需获得标量值:

if(cursor.moveToFirst()) { 
    return cursor.getInt(0); 
0

用做 - >同时从第一记录开始

do{ 
    number = number + databaseCursor2.getInt(
      databaseCursor2.getColumnIndexOrThrow(
        BorrowMeTable.COLUMN_CREDIT_SCORE)); 
}while (databaseCursor2.moveToNext());