Как получить количество строк запроса в Android с помощью SQLite? Кажется, мой следующий метод не работает.
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;
}
return (int) DatabaseUtils.longForQuery(mDB, "SELECT COUNT(*) FROM table_name", null);
cursor.moveToNext();
cursor.getCount();
Если moveToNext() не вызывается, может возникнуть курсорIndexOutOfBoundException.
Это было бы более эффективно, потому что работа для всех версий:
int numRows = DatabaseUtils.longForQuery(db, "SELECT COUNT(*) FROM table_name", null);
или
int numRows = DatabaseUtils.queryNumEntries(db, "table_name");
или, если вы хотите получить количество строк, которые имеют конкретный выбор, тогда вы должны пойти с (добавлен в API 11)
public static long queryNumEntries (SQLiteDatabase db, String table, String selection)
Спасибо:)
val query = "SELECT * FROM $TABLE_NAME ;"
val result = db.rawQuery(query,null)
Toast.makeText(ctx,result.count,Toast.LENGTH_SHORT).show()
public long getRecords() {
return DatabaseUtils.longForQuery(db, "SELECT COUNT(*) FROM contacts", null);
}
Вы можете использовать это как метод или использовать это, если ваша база данных использует автоинкремент
public long getRecords() {
return DatabaseUtils.longForQuery(db, "SELECT seq FROM sqlite_sequence", null);
}
В DatabaseUtils
public static long queryNumEntries(SQLiteDatabase db, String table)
используйте строку вместо 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();
Запрос для столбца _ID в таблице, а затем вызовите getCount на курсор. Вот ссылка которую я делаю в одном из моих проектов. Посмотрите на номер строки 110.