[英]How to get the total count of records from SQLite
我正在嘗試從Sqlite DB獲取行的總數。 以下是我正在嘗試執行的代碼段。
我不知道我在這里做錯了什么?
public static int getTotalCount(Context _context)
{
Cursor c = null;
try
{
c = getInstance(_context).db.rawQuery("SELECT COUNT(word) FROM "
+ WORD_TABLE, null);
return c.getInt(c.getColumnIndex(WORD_COL));
} catch (Exception e)
{
Log.e("getTotalCount", e.toString());
}
return 0;
異常消息:05-08 05:21:19.934:ERROR / getTotalCount(440):android.database.CursorIndexOutOfBoundsException:請求的索引-1,大小為1
試試c.getInt(0);
要么
c = getInstance(_context).db.rawQuery("SELECT COUNT(word) as WORD_COL FROM "
+ WORD_TABLE, null);
還放了一個c.moveToFirst();
就在rawQuery行之后,以取得良好的效果。
假設WORD_COL
是word
? 您尚未請求名為word
的列。 您有一個COUNT(word)
列,這是完全不同的事情。 因此,當您嘗試獲取word
數據時, getColumnIndex
找不到它,給您的廢話索引-1
,由於沒有人從-1
開始計數,因此它導致getInt
失敗。 :)
您也可以將列重命名為更好的名稱: SELECT COUNT(word) AS word_count FROM...
,然后請求該名稱。 另一種選擇是,您知道此查詢僅返回一列,無需命名。 只需直接使用其索引即可。
在rawQuery
,嘗試
c.moveToFirst();
return c.GetInt(0);
嘗試這個:
Cursor c = _sqlDatabase.rawQuery("Select * from table", null);
System.out.println("Count:"+c.getCount());
問候,Nital Shah
您可能有此CursorIndexOutOfBoundsException
因為光標沒有指向第一個結果。
嘗試這個:
try
{
c = getInstance(_context).db.rawQuery("SELECT COUNT(word) FROM "
+ WORD_TABLE, null);
c.moveToFirst();
return c.getInt(c.getColumnIndex(WORD_COL));
} catch (Exception e)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.