web-dev-qa-db-fra.com

Comment compter le nombre d'enregistrements dans sqlite dans Android

Je travaille sur un projet Android. J'ai utilisé la base de données sqlite pour cela. J'ai des tables dans la base de données. J'ai créé la classe databasehelper. Je veux compter le nombre d'enregistrements dans une table particulière. Comment puis-je atteindre cet objectif ? toute aide serait appréciée?

14
user1602798

Ce serait plus efficace:

int numRows = DatabaseUtils.longForQuery(db, "SELECT COUNT(*) FROM table_name", null);

Ou:

int numRows = DatabaseUtils.queryNumEntries(db, "table_name");
45
Nick Bradbury

À l'aide de la requête SELECT COUNT(*) FROM table_name et, que compte la taille du curseur ..

La méthode du curseur à la taille de comptage (nombre de lignes dans le curseur) est,

getCount()

Retourne le nombre de lignes dans le curseur.

OU:

De DatabaseUtils use method queryNumEntries(SQLiteDatabase db, String table)

Comme,

long numberOfRows = DatabaseUtils.queryNumEntries(db, "table_name");

which retourne le nombre de lignes de la table.

14
user370305

Essaye ça.

Cursor c = db.rawQuery("select * from your_table_name",null);
Log.i("Number of Records"," :: "+c.getCount());

Edit: c.getCount () renvoie le nombre d'enregistrements d'une table particulière.

10
Chirag

À Kotlin

fun getFruitTableCount(): Int {
        val db = readableDatabase
        val numRows = DatabaseUtils.longForQuery(db, "SELECT COUNT(*) FROM " + DBContract.FruitEntry.TABLE_NAME, null).toInt()
        return numRows
    }
1
Sam

S'il vous plaît essayez ceci:

Dans votre DatabaseHelper.Java:

public Cursor getYourTableContents() {
  SQLiteDatabase db = this.getWritableDatabase();

  Cursor data = db.rawQuery("SELECT * FROM " + "Your table name", null);

  return data;
}

Pour obtenir le nombre de lignes dans votre table:

Cursor yourCursor = myDB.getYourTableContents();

int i = 0;

while (yourCursor.moveToNext()) {
  i += 1;
}

i est votre nombre de lignes comme un entier. 

0
Victor USA