How to get the row count of a query in Android using SQLite?
How do I get the ro开发者_StackOverflow社区w count of a query in Android using SQLite? It seems my following method does not work.
public int getFragmentCountByMixId(int mixId) {
int count = 0;
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
Cursor cursor = db.rawQuery(
"select count(*) from downloadedFragement where mixId=?",
new String[]{String.valueOf(mixId)});
while(cursor.moveToFirst()){
count = cursor.getInt(0);
}
return count;
}
Cursor.getCount()
cursor.moveToNext();
cursor.getCount();
If the moveToNext() is not called, the cursorIndexOutOfBoundException may arise.
This would be more efficient because work for all versions:
int numRows = DatabaseUtils.longForQuery(db, "SELECT COUNT(*) FROM table_name", null);
or
int numRows = DatabaseUtils.queryNumEntries(db, "table_name");
or if you want to get number of rows which specific selection then you should go with (added in API 11)
public static long queryNumEntries (SQLiteDatabase db, String table, String selection)
Thanks :)
use String instead of int
String strCount = "";
int count = 0;
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
Cursor cursor = db.rawQuery(
"select count(*) from downloadedFragement where mixId=?",
new String[]{String.valueOf(mixId)});
while(cursor.moveToFirst()){
strCount = cursor.getString(cursor.getColumnIndex("COUNT(*)"));
}
count = Integer.valueOf(strCount).intValue();
Query for _ID column in table and then call getCount on cursor. Here is a link I am doing in one of my project. Look at line number 110.
In DatabaseUtils
public static long queryNumEntries(SQLiteDatabase db, String table)
public long getRecords() {
return DatabaseUtils.longForQuery(db, "SELECT COUNT(*) FROM contacts", null);
}
You can use this as a method or use this if your database uses auto increment
public long getRecords() {
return DatabaseUtils.longForQuery(db, "SELECT seq FROM sqlite_sequence", null);
}
val query = "SELECT * FROM $TABLE_NAME ;"
val result = db.rawQuery(query,null)
Toast.makeText(ctx,result.count,Toast.LENGTH_SHORT).show()
精彩评论