2013-03-10 103 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());