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