IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Afficher une table


Sujet :

Android

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 9
    Points : 12
    Points
    12
    Par défaut Afficher une table
    Bonjour,

    J'ai un petit problème. Je voudrais afficher toutes les données présentes dans ma table. Le soucis ce que d'après des testes, celle-ci est vide... voici des morceaux de codes :

    L'activité principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    public class MainActivity extends Activity {
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
     
    		//Création d'une instnce de Score
    		ScoreDAO sDAO = new ScoreDAO(this);
     
    		//Création d'un score
    		Score s = new Score(new String("Thanos"), new String("986"));
    		Score s2 = new Score(new String("Thanos"), new String("986"));
    		Score s7 = new Score(new String("Thanos"), new String("986"));
    		Score s4 = new Score(new String("Thanos"), new String("986"));
    		Score s5 = new Score(new String("Thanos"), new String("986"));
     
    		// On ouvre la base de donnée pour écrire dedans
    		sDAO.open();
     
    		System.out.println("\n\n\n\n");
     
    		// On y ajoute le score
    		sDAO.addScore(s);
    		sDAO.addScore(s2);
    		sDAO.addScore(s7);
    		sDAO.addScore(s5);
    		sDAO.addScore(s4);
     
     
    		System.out.println(sDAO.showTable());
    	}
    }
    La classe qui permet de gérer la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    public class ScoreDAO
    {
    	//...
     
    	private static final int NUMERO_COLONNE_ID = 0;
     
    	//...
     
    	private static final int NUMERO_COLONNE_PLAYER= 1;
     
    	//...
     
    	private static final int NUMERO_COLONNE_SCORE = 2;
     
    	private SQLiteDatabase _db;
    	private ScoreDB _scoredb;
     
    	//...
     
    	public long addScore(Score s)
    	{
    		ContentValues v = new ContentValues();
    			v.put(COLONNE_PLAYER, s.get_player());
    			v.put(COLONNE_SCORE, s.get_score());
     
    			return this.get_db().update(TABLE_SCORE, v, COLONNE_ID + " = " + s.get_id(), null);
    	}
     
    	//...
     
    	public Score cursorToScore(Cursor c)
    	{
    		// S'il n'y a aucune ligne.
    		if(c.getCount() == 0)
    			return null;
     
    //		c.moveToFirst();
     
    		Score s = new Score();
     
    		// On affecte toute les inforamtions de la ligne à Score.
    		s.set_id(c.getInt(NUMERO_COLONNE_ID));
    		s.set_player(c.getString(NUMERO_COLONNE_PLAYER));
    		s.set_score(c.getString(NUMERO_COLONNE_SCORE));
     
    		c.close();
     
    		return s;
    	}
     
    	public String showTable()
    	{
    		Cursor c = get_db().rawQuery("SELECT * FROM " + TABLE_SCORE, null);
    		String s = new String("");
    		Score score = new Score();
     
    		if(c.getCount() == 0)
    			return "Table Vide";
     
    		c.moveToFirst();
     
    		do
    		{
    			score = cursorToScore(c);
     
    			s += score.get_id() + " | " + score.get_player() + " | " + score.get_score() + "\n";
    		}while(c.moveToNext());
     
    		return s;	
    	}
    }
    Quand je compile ça me dis que la table est vide (grâce à l'affichage ligne 57 de la classe ScoreDAO). Est-ce ma méthode addScore(...) qui est mal coder ? Peut-être ma requête qui est fausse ? Mon Cursor mal initialiser ??

    Merci,
    Cordialement

  2. #2
    Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 36
    Points : 53
    Points
    53
    Par défaut
    il faudrait utiliser la méthode insert au lieu de update dans ta méthode addScore de la classe ScoreDAO


  3. #3
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Salut, bon je ne porte peut etre pas la solution du problème mais juste une remarque: c'est inutile de déclarer tes variables String en faisant new String comme ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Score s = new Score(new String("Thanos"), new String("986"));
    il suffit de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Score s = new Score("Thanos", "986");
    et puisque la 2eme colonne de ta table contient des entiers (score) pourquoi les déclarer comme String?
    Et pouvez vous nous fournir la déclaration de ta table TABLE_SCORE?
    Pour la méthode addScore() il faut mettre un insert comme ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return bdd.insert(TABLE_FORMATION, null, values);
    Bonne chance
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  4. #4
    Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 36
    Points : 53
    Points
    53
    Par défaut
    cool;janyoura me rejoins. je croyais que tu disais que la méthode addScore était correcte

  5. #5
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par Rokia88 Voir le message
    cool;janyoura me rejoins. je croyais que tu disais que la méthode addScore était correcte
    Mais je me suis trompée et lorsque j'ai vu ton commentaire et vérifié de nouveau la méthode je me suis rendue compte
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  6. #6
    Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 36
    Points : 53
    Points
    53
    Par défaut
    je m'en doutais pas

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    J'ai mis à jour la méthode addScore avec instert(...) et finalement ça marche =), merci. Après j'ai eu un soucis avec la méthode showTable. Une exception parce que je "fermais" le cursor dans cursorToScore alors que je continuais à l'utiliser (du coups maintenant je le ferme à la fin de la méthode showTable)... Et une boucle infinie parce que je retournais toujours au début dans cursorToScore. ^^

    Merci, pour votre aide ^^ =)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher une table dans un formulaire
    Par noob_vba dans le forum IHM
    Réponses: 8
    Dernier message: 20/06/2006, 16h54
  2. Comment Afficher Une Table A L'aide Quick Report
    Par lnpt23 dans le forum Bases de données
    Réponses: 8
    Dernier message: 20/06/2006, 15h56
  3. Afficher une table masquée
    Par Tierisa dans le forum Access
    Réponses: 2
    Dernier message: 14/06/2006, 09h08
  4. Réponses: 24
    Dernier message: 02/06/2006, 10h58
  5. [C#] creer et afficher une table en code behind
    Par shams dans le forum ASP.NET
    Réponses: 9
    Dernier message: 13/07/2005, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo