Bonjour;

je travail sur un projet android avec une base de données sqllite .

j'ai l'erreur suivant "no such" en indiquant que le table est introuvable ;
j'ai cherché et parcourir mon code sans avoir la source du problème.

voila mon code ,et j’espère que vous m'aidez à trouver le problème.

la classe SQLLite
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
 
package SqlLiteBD;
 
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
 
public class Medicament extends SQLiteOpenHelper   {
 
 
	public static final String MedicamentTableName = "Medicament";
 
	public static final String COL_ID_Medicament = "ID_Medicament";
	public static final int Num_COL_ID_Medicament = 0;
	public static final String COL_intitule_Medicament= "intitule_Medicament";
	public static final int Num_COL_intitule_Medicament= 1;
	public static final String COL_Quantite = "Quantite";
	public static final int Num_COL_Quantite = 2;
	public static final String COL_Date_peremption = "Date_peremption";
	public static final int Num_COL_Date_peremption = 3;
	public static final String COL_IsInTraitement = "IsInTraitement";
	public static final int Num_COL_IsInTraitement = 4;
 //IF NOT EXISTS
	private static final String CREATE_MedicamentTableName= "CREATE TABLE IF NOT EXISTS " + MedicamentTableName + " ("
	+ COL_ID_Medicament + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
	+ COL_intitule_Medicament + " TEXT NOT NULL, "
	+ COL_Quantite + " numeric NOT NULL, "
	+ COL_Date_peremption + " Date NOT NULL, "
	+ COL_IsInTraitement + " INTEGER NOT NULL);";
 
 
	public Medicament(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
		// TODO Auto-generated constructor stub
 
	}
 
	@Override
	public void onCreate(SQLiteDatabase DB) {
		// TODO Auto-generated method stub
		DB.execSQL(CREATE_MedicamentTableName);
	}
 
	@Override
	public void onUpgrade(SQLiteDatabase DB, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
 
		DB.execSQL("DROP TABLE IF EXISTS " + MedicamentTableName + ";");
		onCreate(DB);
 
 
 
	}
 
}
et voila mon code data Access pour faire sélection,update,insert

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
package DataAccessLayer;
 
import java.util.ArrayList;
 
import SqlLiteBD.DBClass;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
 
public class Medicament<DatabaseHelper> {
 
	private SQLiteDatabase DB;
    String exx;
	private SqlLiteBD.Medicament MedicatementDAO;
    public Context context;
	public Medicament(Context _context){
		//On créer la BDD et sa table   
		MedicatementDAO = new SqlLiteBD.Medicament (_context, DBClass.NOM_BD, null, DBClass.VERSION_BD);
	}
 
	public void open(){
		//on ouvre la BDD en écritur
		DB = MedicatementDAO.getWritableDatabase();
	}
 
	public void close(){
		//on ferme l'accès à la BDD
		DB.close();
	}
 
	public SQLiteDatabase getBD(){
		return DB;
	}
 
	public long insertMedicament(Entity.Medicament medicament){
 
			open();
			ContentValues Paramsvalues = new ContentValues();
			//Paramsvalues.put(SqlLiteBD.Medicament.COL_ID_Medicament, medicament.getID_Medicament());
			Paramsvalues.put(SqlLiteBD.Medicament.COL_Date_peremption, medicament.getDate_peremption().toString());
			Paramsvalues.put(SqlLiteBD.Medicament.COL_intitule_Medicament, medicament.getIntitule_Medicament());
			Paramsvalues.put(SqlLiteBD.Medicament.COL_Quantite, medicament.getQuantite());
			Paramsvalues.put(SqlLiteBD.Medicament.COL_IsInTraitement, medicament.isInTraitement()?1:0);
			long  returne= DB.insert(SqlLiteBD.Medicament.MedicamentTableName, null, Paramsvalues);
			//close();
		  return returne;
	}
 
	public int updateMedicament( Entity.Medicament medicament){
 
			open();
			ContentValues Paramsvalues = new ContentValues();
			Paramsvalues.put(SqlLiteBD.Medicament.COL_ID_Medicament, medicament.getID_Medicament());
			Paramsvalues.put(SqlLiteBD.Medicament.COL_Date_peremption, medicament.getDate_peremption().toString());
			Paramsvalues.put(SqlLiteBD.Medicament.COL_intitule_Medicament, medicament.getIntitule_Medicament());
			Paramsvalues.put(SqlLiteBD.Medicament.COL_Quantite, medicament.getQuantite());
			int returne= DB.update(SqlLiteBD.Medicament.MedicamentTableName, Paramsvalues, SqlLiteBD.Medicament.COL_ID_Medicament + " = " + medicament.getID_Medicament(), null);
			//close();
			return returne;			
	}
 
	 public void removeMedicamentWithID(int id) {
 
		 DB.delete(SqlLiteBD.Medicament.MedicamentTableName, SqlLiteBD.Medicament.COL_ID_Medicament  + "=?",new String[] { String.valueOf(id) });
    }
 
	public ArrayList<Entity.Medicament> getMedicamentsWithTraitement(int ID_traitement){
		open();
			ArrayList<Entity.Medicament> medicaments=new ArrayList<Entity.Medicament>();
 
		    DataAccessLayer.Prise priseDAO=new  DataAccessLayer.Prise(context);		
		    ArrayList<Entity.Prise>prises=  priseDAO.getPrisesWithTraitementID(ID_traitement);
 
		    if (prises.size()==0)
		    	return medicaments;
 
		    for( Entity.Prise  p: prises)
		    {
		       Cursor c = DB.query(SqlLiteBD.Medicament.MedicamentTableName, new String[] {SqlLiteBD.Medicament.COL_ID_Medicament, SqlLiteBD.Medicament.COL_intitule_Medicament, SqlLiteBD.Medicament.COL_Quantite,SqlLiteBD.Medicament.COL_Date_peremption}, SqlLiteBD.Medicament.COL_ID_Medicament + "=" + p.getID_Medicament() , null, null, null, null);
			   ArrayList<Entity.Medicament> _medicaments=cursorToMedicaments(c);
			   if (_medicaments.size()==0)
				 continue;
			   medicaments.addAll(_medicaments);
		    }
		   // close();
			return medicaments;	
	}
 
	public Entity.Medicament getMedicamentWithMedicamentID(int  ID_Medicament){
	        open();
			Cursor c = DB.query(SqlLiteBD.Medicament.MedicamentTableName, new String[] {SqlLiteBD.Medicament.COL_ID_Medicament, SqlLiteBD.Medicament.COL_intitule_Medicament, SqlLiteBD.Medicament.COL_Quantite,SqlLiteBD.Medicament.COL_Date_peremption,SqlLiteBD.Medicament.COL_IsInTraitement}, SqlLiteBD.Medicament.COL_ID_Medicament + "=" + ID_Medicament , null, null, null, null);
			Entity.Medicament med= cursorToMedicament(c);
			//close();
			return med;
 
	}
    public ArrayList<Entity.Medicament> getMedicaments(){   
 
    	    open();
			Cursor c = DB.query(SqlLiteBD.Medicament.MedicamentTableName, new String[] {SqlLiteBD.Medicament.COL_ID_Medicament, SqlLiteBD.Medicament.COL_intitule_Medicament, SqlLiteBD.Medicament.COL_Quantite,SqlLiteBD.Medicament.COL_Date_peremption,SqlLiteBD.Medicament.COL_IsInTraitement}, null , null, null, null, null);
			ArrayList<Entity.Medicament> meds= cursorToMedicaments(c);
			//close();
			return meds;
 
	}
 
	private Entity.Medicament cursorToMedicament(Cursor c){
		try
		{
 
			Entity.Medicament medicament = new Entity.Medicament();
			if (c.getCount() == 0)
				return medicament;
			c.moveToFirst();
			medicament.setID_Medicament(c.getInt(SqlLiteBD.Medicament.Num_COL_ID_Medicament));
			medicament.setIntitule_Medicament(c.getString(SqlLiteBD.Medicament.Num_COL_intitule_Medicament));
			medicament.setQuantite(c.getDouble(SqlLiteBD.Medicament.Num_COL_Quantite));
			medicament.setDate_peremption( c.getString(SqlLiteBD.Medicament.Num_COL_Date_peremption));
			int boolvalue=c.getInt(SqlLiteBD.Medicament.Num_COL_IsInTraitement);
			if (boolvalue== 0)
				medicament.setInTraitement(false);
			else
				medicament.setInTraitement(true);
 
			return medicament;
		}
		catch(Exception ex)
		{
			return new Entity.Medicament();
		}
	}
 
	private ArrayList<Entity.Medicament> cursorToMedicaments(Cursor c){
		try
		{
		ArrayList<Entity.Medicament> Medicaments=new ArrayList<Entity.Medicament>();
				if (c.getCount() == 0)
					return Medicaments;
					c.moveToFirst();	
 
					do {
						Entity.Medicament medicament = new Entity.Medicament();
						medicament.setID_Medicament(c.getInt(SqlLiteBD.Medicament.Num_COL_ID_Medicament));
						medicament.setIntitule_Medicament(c.getString(SqlLiteBD.Medicament.Num_COL_intitule_Medicament));
						medicament.setQuantite(c.getDouble(SqlLiteBD.Medicament.Num_COL_Quantite));
						medicament.setDate_peremption( c.getString(SqlLiteBD.Medicament.Num_COL_Date_peremption));
						int boolvalue=c.getInt(SqlLiteBD.Medicament.Num_COL_IsInTraitement);
						if (boolvalue== 0)
							medicament.setInTraitement(false);
						else
							medicament.setInTraitement(true);
						Medicaments.add(medicament);
 
				       } while (c.moveToNext());
 
		       return Medicaments;
		}
		catch(Exception ex)
		{
			return new ArrayList<Entity.Medicament>();
		}
}
 
}
et merci