Bases de données SQLite .Android
Fermé
amani
-
Modifié par amani le 18/01/2012 à 20:54
dev-mb Messages postés 2 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 8 février 2013 - 6 févr. 2013 à 10:33
dev-mb Messages postés 2 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 8 février 2013 - 6 févr. 2013 à 10:33
A voir également:
- Bases de données SQLite .Android
- Android - Guide
- Android recovery - Guide
- Voir mot de passe wifi android - Guide
- Jouer a pokemon sur android - Guide
- Plus de clavier sur android - Guide
2 réponses
Salut,
1/ Je n'ai pas eu le courage de tout lire, dsl :s ni de le tester. L'as tu tester toi même ?
2/ Pour insérer des données, dans l'Activity en question tu fais :
String nom = "Lachaise"
int heure = 22;
String salle = "A132";
dataBase db = new dataBase(this);
db.open();
objetSeance obj = new objSeance(nom,heure,salle);
db.insererSeance(obj);
db.close();
Dans ce que je t'ai écris, j'ai sous entendu que tu avais créer ton objet objetSeance qui contient les getters et setters nom, heure, salle.
3/ Pour afficher ta bdd dans ton activity, tu dois créer un curseur. Tu peux regarder un peu sur google. Si tu as besoin d'aide ou plus de précision, je le ferais avec grand plaisir si cela reste dans mes cordes ^^.
En espérant t'avoir été utile ...
EDIT : Je viens de voir que tu as déjà un curseur dans ton fichier. Dans ta requête SQLITE :db.query, lis bien la doc car tu peux choisir par exemple si tu veux repérer les doublons, etc. Ici ta requete te permet de récupérer tous le contenu de la table 'emploi' je crois. Tu as (j'ai copier coller ton code) :
public Cursor recupererEmploi(){
return db.query("emplois", new String[]{"_id","nom","heure","salle"},
null, null, null, null, null);
return cursorToSeance;
}
Rajoutes ensuite (dans le même fichier) :
private objSeance cursorToSeance(Cursor c){
//si aucun élément n'a été retourné dans la requête, on renvoie null
if (c.getCount() == 0)
return null;
//Sinon on se place sur le premier élément
c.moveToFirst();
objSeance obj= new objSeance ();
//on lui affecte toutes les infos grâce aux infos contenues dans le Cursor
obj.setNom(c.getString(NUM_COL_NOM));
obj.setHeure(c.getInt(NUM_COL_HEURE));
obj.setSalle(c.getString(NUM_COL_SALLE));
//On ferme le cursor
c.close();
return obj;
}
Cette fonction là te permettra de parcourir ce que ta requête SQLITE (db.query) ta trouvé.
Pour les variable NUM_COL_NOM etc, elles se définissent comme ça :
private static final String NUM_COL_NOM = "Nom";
private static final int NUM_COL_NOM = 0;
Pour afficher les valeurs dans ton activity, tu fais appel à la dernière fonction que je t'ai donné.
Hum ... Je pense que j'ai été très très brouillon dans mon explication, dsl, je ne suis pas très doué pour ça. J'espère quand même t'avoir aidé un peu.
1/ Je n'ai pas eu le courage de tout lire, dsl :s ni de le tester. L'as tu tester toi même ?
2/ Pour insérer des données, dans l'Activity en question tu fais :
String nom = "Lachaise"
int heure = 22;
String salle = "A132";
dataBase db = new dataBase(this);
db.open();
objetSeance obj = new objSeance(nom,heure,salle);
db.insererSeance(obj);
db.close();
Dans ce que je t'ai écris, j'ai sous entendu que tu avais créer ton objet objetSeance qui contient les getters et setters nom, heure, salle.
3/ Pour afficher ta bdd dans ton activity, tu dois créer un curseur. Tu peux regarder un peu sur google. Si tu as besoin d'aide ou plus de précision, je le ferais avec grand plaisir si cela reste dans mes cordes ^^.
En espérant t'avoir été utile ...
EDIT : Je viens de voir que tu as déjà un curseur dans ton fichier. Dans ta requête SQLITE :db.query, lis bien la doc car tu peux choisir par exemple si tu veux repérer les doublons, etc. Ici ta requete te permet de récupérer tous le contenu de la table 'emploi' je crois. Tu as (j'ai copier coller ton code) :
public Cursor recupererEmploi(){
return db.query("emplois", new String[]{"_id","nom","heure","salle"},
null, null, null, null, null);
return cursorToSeance;
}
Rajoutes ensuite (dans le même fichier) :
private objSeance cursorToSeance(Cursor c){
//si aucun élément n'a été retourné dans la requête, on renvoie null
if (c.getCount() == 0)
return null;
//Sinon on se place sur le premier élément
c.moveToFirst();
objSeance obj= new objSeance ();
//on lui affecte toutes les infos grâce aux infos contenues dans le Cursor
obj.setNom(c.getString(NUM_COL_NOM));
obj.setHeure(c.getInt(NUM_COL_HEURE));
obj.setSalle(c.getString(NUM_COL_SALLE));
//On ferme le cursor
c.close();
return obj;
}
Cette fonction là te permettra de parcourir ce que ta requête SQLITE (db.query) ta trouvé.
Pour les variable NUM_COL_NOM etc, elles se définissent comme ça :
private static final String NUM_COL_NOM = "Nom";
private static final int NUM_COL_NOM = 0;
Pour afficher les valeurs dans ton activity, tu fais appel à la dernière fonction que je t'ai donné.
Hum ... Je pense que j'ai été très très brouillon dans mon explication, dsl, je ne suis pas très doué pour ça. J'espère quand même t'avoir aidé un peu.
dev-mb
Messages postés
2
Date d'inscription
lundi 15 octobre 2012
Statut
Membre
Dernière intervention
8 février 2013
6 févr. 2013 à 10:33
6 févr. 2013 à 10:33
Bonjour,
Je suis entrain de créer une application qui permet aux étudiants de sauvegarder un emploi du temps, j'ai crée les interfaces suivantes:
1. interface qui permet aux étudiants de choisir la matière, la date , le jour puis les données seront enregistré dans une base de donnée SQLite
2. une interface qui permet d'afficher les données , je veux que les données soient affiché dans un tableau , j'ai crée un tableau avec tablelayout mais je n'arrive pas à le remplir avec les données que je sélectionne à partir de la base .
Je suis entrain de créer une application qui permet aux étudiants de sauvegarder un emploi du temps, j'ai crée les interfaces suivantes:
1. interface qui permet aux étudiants de choisir la matière, la date , le jour puis les données seront enregistré dans une base de donnée SQLite
2. une interface qui permet d'afficher les données , je veux que les données soient affiché dans un tableau , j'ai crée un tableau avec tablelayout mais je n'arrive pas à le remplir avec les données que je sélectionne à partir de la base .
19 janv. 2012 à 07:31
Pourquoi vous avez ajouté au curseur que j'ai crée un autre return? c pas logique nn? en plus vous avez utilisé 'objseance' mais j'ai pas créer cette classe.faut 'il la créer.pouvez vous m'aidez par mieux expliquer les choses svp.
19 janv. 2012 à 08:07
19 janv. 2012 à 10:21
Pour le curseur, effectivement je n'avais pas vu que tu avais fait un return directement sur ta requête SQLite. Dans ce cas là, moi je remplacerais ta fonction par :
public objSeance getobjSeance(){
Cursor c = db.query("emplois", new String[]{"_id","nom","heure","salle"}, null, null, null, null, null);
return cursorToSeance(c);
}
La fonction que je t'ai ajouté pour le curseur va permettre de parcourir ligne par ligne ce que ta requête aura trouvé.
Pour la classe manquante, tu dois créer une classe appelé objSeance et y mettre le code suivant :
public class objSeance {
private String Nom;
private String Heure;
private String Salle;
public objSeance(String nom, String heure, String salle) {
super();
Nom = nom;
Heure = heure;
Salle = salle;
}
public objSeance() {
// TODO Auto-generated constructor stub
}
public String getNom() {
return Nom;
}
public void setNom(String nom) {
Nom = nom;
}
public String getHeure() {
return Heure;
}
public void setHeure(String heure) {
Heure = heure;
}
public String getSalle() {
return Salle;
}
public void setSalle(String salle) {
Salle = salle;
}
}
Tu dois juste rajouter le nom du package en haut, et sans doute changer le type de ta variable "Heure". Je l'ai mis en String mais ça ne doit pas être ça.
Tu dis : "je veux remplir l'emploi depuis le émulateur non pas tester le programme avec le code"
Je comprends pas cette phrase ... :s Si tu veux remplir l'emploie du temps depuis l'émulateur Android, c'est que tu testes ton programme. Non ?
19 janv. 2012 à 11:55
je veux remplir la base et effacer d'un façon contenue: est ce que je peux créer une interface pour récupérer les 3 champs nom salle et temps puis les insérer ds la base?
De cette manière je peux ajouter des lignes a ma bases quand je veux sans changer le code nn?
19 janv. 2012 à 12:01
dans cette méthode que vous avez créer
public objSeance getobjSeance(){
Cursor c = db.query("emplois", new String[]{"_id","nom","heure","salle"}, null, null, null, null, null);
return cursorToSeance(c);
}
j'ai pas compris le type de retour.c qui cursorToSeance(c) en fait cette méthode n'est pas définit, comment l'utiliser donc?