2012-04-27 56 views
0

我試過這個來得到行數。但該計劃懸而未決。如何統計表中的行數?

private int countbaglist() 
{ 
    int count = 0; 
    SQLiteDatabase db = datasource.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(
     "select count(*) from shoplist where itemname=?", 
     new String[] { String.valueOf("itemname") }); 

    while(cursor.moveToFirst()) 
    { 
     count = cursor.getCount(); 
    } 
    return count; 
} 

回答

2

因爲您的while循環從不退出,所以它會掛起。改爲將while替換爲一次性的if。另外請注意,你需要閱讀整數值COUNT查詢返回,而不是光標的行數將始終爲1

if (cursor.moveToFirst()) 
    count = cursor.getInt(0); 
+0

Downvoter,解釋一下自己。我的答案是迄今爲止唯一正確的答案。 – 2012-04-27 09:53:33

+0

my answr也corrent – 2012-04-27 09:55:00

+0

cursor.getInt(0);它是否在表中返回行號?或cursor.getCount();它是否在表中返回行號?解釋它是如何工作的。 – Dinesh 2012-04-27 09:56:08

2

試試這個鏈接,你的答案

How to get the row count of a query in Android using SQLite?

刪除下面的代碼while條件:

while(cursor.moveToFirst()){ 
    count = cursor.getCount(); 
    } 

替換下面的代碼:

​​
+0

'Cursor.getCount()'你不能調用方法與光標類本身,你必須創建它的對象 – 2012-04-27 09:48:49

+0

-1 cursor.getCount()將返回1(COUNT查詢返回的行數),這是錯誤的。 – 2012-04-27 09:50:09