2013-03-04 47 views
1

仍然掌握所有这些。从单个SQLite列中收集数据

我的问题是这样的 - 我有我想一个桌子下从数据库中收集的分数一列:

23 
45 
84 
56 

我想将它们收集齐全,并添加在一起。

我已经试过这样:

String[] projection2 = {BorrowMeTable.COLUMN_CREDIT_SCORE }; 
Cursor databaseCursor2 = getContentResolver().query(uri, projection2, 
     null, null, null); 
int number = 0; 
if (databaseCursor2 != null) { 
    while (databaseCursor2.isAfterLast() == false) { 
     databaseCursor2.moveToFirst(); 
     number = number + databaseCursor2.getInt(databaseCursor2 
       .getColumnIndexOrThrow(BorrowMeTable.COLUMN_CREDIT_SCORE)); 
    } 
} 

,但它只是崩溃的应用程序。这是为什么发生?

+0

崩溃对logcat有什么影响?指向受影响的行号。 – mango 2013-03-04 01:38:44

+0

它实际上没有崩溃,我认为它进入了一个无限循环,屏幕一直黑色,直到android系统出现,并表示它没有响应。 – Vince 2013-03-04 01:51:45

回答

0

你有一个无限循环的位置:

while (databaseCursor2.isAfterLast() == false){ 
    databaseCursor2.moveToFirst(); 
    ... 
} 

你永远不会移动到光标下一行。通常我使用类似这样的代替:

while(cursor.moveToNext()) { 
    // do cursor stuff 
    .... 
} 
+0

是的,就是这样。你摇滚,谢谢。 – Vince 2013-03-04 03:13:21