0 votes

Comment parcourir chaque enregistrement dans une base de données SQLite ?

Je pense que c'est assez facile, mais je suis encore nouveau dans la programmation Android, alors soyez patient. Je veux savoir comment je peux obtenir le nombre d'enregistrements (lignes) dans une table spécifique de ma base de données. J'en ai besoin pour créer une boucle qui passe par tous les enregistrements et ajoute chacun d'entre eux au tableau spécifique et l'affiche plus tard. Voici la source :

db.openDataBase();            // open connection with db

Cursor c = db.getTitle(5);    // loop here through db, right now I'm fetching only one record

startManagingCursor(c);

//adding areas to the list here

Area o1 = new Area();

o1.setOrderName(c.getString(1) + c.getString(2));  

m_areas.add(o1);

db.close();

Quelqu'un peut-il m'aider à ce sujet ? Merci d'avance !

2voto

reinierpost Points 4221
SELECT COUNT(*) FROM tablename

1voto

Skurmedel Points 9227

Pour obtenir le nombre de lignes dans le curseur, utilisez getCount .

Pour obtenir le nombre total de lignes dans un tableau, utilisez soit reinierpost ou faites un select qui sélectionne toutes les lignes du tableau et récupère le compte à partir du curseur. Je suppose que sa solution est plus rapide, à moins que vous n'ayez réellement besoin de toutes les lignes du tableau.

Une telle requête serait :

SELECT * FROM footable;

0voto

Daniel Points 660

Vous n'avez pas vraiment besoin d'obtenir un compte de combien d'entre eux d'abord ; au lieu de cela, créer un db.getTitles() qui retourne toutes les lignes et renvoie un curseur, puis boucle sur le curseur. Actuellement, vous avez probablement une requête qui ressemble à quelque chose comme SELECT ColumnA, ColumnB FROM Titles WHERE id = 5 ; il suffit de copier la fonction, d'enlever le paramètre et de retirer la clause WHERE pour que cela ressemble à ceci SELECT ColumnA, ColumnB FROM Titles .

Votre code ressemblerait alors à quelque chose comme ceci :

db.openDataBase(); // open connection with db
Cursor c = db.getTitles();
startManagingCursor(c);

//adding areas to the list here
if (c != null && c.moveToFirst()) {
    do {
        Area o1 = new Area();
        o1.setOrderName(c.getString(1) + c.getString(2));
        m_areas.add(o1);
    } while (c.next());
}

db.close();

Nous vérifions si la fonction renvoie un curseur, puis nous nous déplaçons au début du curseur et commençons à boucler, en passant à l'élément suivant à chaque fois. Pour plus d'informations sur l'interface du curseur, voir l'API aquí ou pour en savoir plus sur l'accès aux bases de données et sur les pratiques de conception en général, je vous suggère de consulter le guide de l'utilisateur du site Web de la Commission européenne. Tutoriel sur le bloc-notes .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X