Bonjour,
Je cherche à modifier des données dans ma table frais au forfait.

Voici mon code
Coté SQLiteHelper:
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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
 
public class Dao  extends SQLiteOpenHelper {
 
 
    static final String DATABASE = "gsb.db";
    static final int VERSION = 1;
 
    // Table visiteur
 
     static final String TABLE_VISITEUR = "visiteur";	
	 static final String C_MAT = "mat";
	 static final String C_NOM = "nom";
	 static final String C_PWD = "pwd";
 
 
 
	// Table fraisforfait
 
	 static final String TABLE_FF = "fraisforfait";	
 
	static final String C_ID = "_id";
	static final String C_DATE = "date";
	static final String C_IDFRAISFORFAIT = "idFraisForfait";
	static final String C_QUANTITE = "quantite";
 
 
	//static final String url = "http://10.0.2.2/gsb/";
 
	SQLiteDatabase db;
	String sql;
	Cursor c;
 
     public Dao(Context context) {
 
		super(context, DATABASE, null, VERSION);
	}
 
    @Override
    public void onCreate(SQLiteDatabase db) {
 
	// Creation de la table visiteur
	db.execSQL("CREATE TABLE   " + TABLE_VISITEUR + " ( " + C_MAT
			+ " TEXT, " + C_NOM + " TEXT, "
			+ C_PWD + " TEXT)");
 
	// Creation de la table fraisforfait
 
	db.execSQL("CREATE TABLE   " + TABLE_FF + " ( " + C_ID
				+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + C_MAT
			+ " TEXT, " + C_DATE + " TEXT, "
			+ C_IDFRAISFORFAIT + " TEXT," + C_QUANTITE + " INT)");
 
}
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
	// Destruction d'une éventuelle ancienne version de la table
 
	db.execSQL("Drop table " + TABLE_VISITEUR);
 
 
	db.execSQL("Drop table " + TABLE_FF);
 
	//Creation de la nouvelle version de la table
	onCreate(db);
 
 
}
    // Insertion des valeurs relatives au visiteur dans la table visiteur: nom, matricule et mdp
    public void sqlInsererVisiteur (Visiteur visiteur) {
 
	ContentValues values = new ContentValues();
 
	values.put(C_MAT, visiteur.getNum());
	values.put(C_NOM, visiteur.getNom());
	values.put(C_PWD, visiteur.getMdp());
	db = getWritableDatabase();
	db.insert(TABLE_VISITEUR, null, values);
	db.close();
} 
 
    public int countVisiteur() {  
 
	db = getWritableDatabase();  
 
	sql = "select count(*) from " + TABLE_VISITEUR ;
 
	c = db.rawQuery(sql, null);  
 
	c.moveToFirst();  
 
	int total = c.getInt(0); 
 
	c.close();  
	db.close();  
	return total ;  
}  
 
 
 
    public String  identificationVisiteur(String pass){  
 
	String matVisiteur= "0" ;
 
	db = getWritableDatabase();  
 
	sql = "select mat from visiteur where pwd = '"+pass+"'" ; 
 
 
	c = db.rawQuery(sql, null);  
	c.moveToFirst();  
 
	 if(c.getCount() != 0){
 
	matVisiteur = c.getString(0)  ;
	 }
 
	c.close();  
	db.close();
 
	return matVisiteur;
 
	}
 
    public String  recupIdVisiteur(){  
 
    	String matVisiteur;
 
    	db = getWritableDatabase();  
 
    	sql = "select mat from visiteur" ; 
 
 
    	c = db.rawQuery(sql, null); 
 
    	c.moveToFirst();  
 
 
    	matVisiteur = c.getString(0)  ;
 
    	c.close();  
    	db.close();
 
    	return matVisiteur;
 
    	}
 
 
 
 
// Insertion des frais au forfait	
 
    public void sqlInsererFraisForfait (FraisForfait ff) {
 
 
    	ContentValues values = new ContentValues();
 
    	values.put(C_MAT, ff.getNumVis());
    	values.put(C_DATE, ff.getDate());
    	values.put(this.C_IDFRAISFORFAIT,ff.getIdFraisForfait());
    	values.put(this.C_QUANTITE, ff.getQuantite());
 
    	db = getWritableDatabase();
    	db.insert(TABLE_FF, null, values);
    	db.close();
 
    }
 
   public void sqlModifFrais(FraisForfait frais, String selected_ID){
 
		ContentValues values = new ContentValues();
		values.put(C_DATE, frais.getDate());
		values.put(C_IDFRAISFORFAIT, frais.getIdFraisForfait());
		values.put(C_QUANTITE,frais.getQuantite());
 
		// Call update method of SQLiteDatabase Class and close after
		// performing task
		db = getWritableDatabase();
		db.update(TABLE_FF, values, C_ID + "=?", new String[] { selected_ID });
		db.close();
	}
 
 
    public Cursor  tousLesFraisForfait() {  
 
 
    		db = getReadableDatabase();
 
    		c = db.query(TABLE_FF, null, null, null, null, null, null);
    		return c;
 
  	 } 
 
 
 
public void sqlSupprimerFraisForfait(String selected_ID ){
 
		db = getWritableDatabase();
		db.delete(TABLE_FF, C_ID + "=?", new String[] { selected_ID });
		db.close();
	}
 
 
 
    }
coté activity :
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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
package com.greta.gsb_frais_v1;
 
 
 
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
 
 
 
 
 
 
 
 
 
import android.annotation.SuppressLint;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
/**
 * 
 */
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
 
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
 
/**
 * @author Cecile
 *
 */
@SuppressLint("SimpleDateFormat")
public class FraisForfaitActivity extends Activity  {
 
 
	String ff_ID = "";
 
	FraisForfait frais;
 
	RadioButton rbFF;
 
	RadioGroup rgFF;
	EditText  txtQuantite, txtDate;
    Spinner spinnerPV;
	Button btnAjouter;
 
	ListView lvFrais;
 
	SimpleCursorAdapter adapter; 
    Dao dao;
	SQLiteDatabase db;
 
	@Override
 
	protected void onCreate(Bundle savedInstanceState) {
 
 
		dao = new Dao(this);
 
 
		super.onCreate(savedInstanceState);
 
 
		setContentView(R.layout.activity_frais_forfait);
 
 
		dateSysteme();
 
 
		lvFrais = (ListView) findViewById(R.id.listView1);
 
 
		// mettre la date systeme dans edDate du layout avtivity=frais=forfaot.XML
 
		SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
        Date date = new Date();
        String nowDate = dateFormat.format(date);
 
		txtDate =(EditText) findViewById(R.id.etDate);		
		txtDate.setText(nowDate);	
 
		txtQuantite = (EditText) findViewById(R.id.etQuantite);
		txtDate =(EditText) findViewById(R.id.etDate);
 
		rgFF = (RadioGroup) findViewById(R.id.rg1);
 
		 int idChoix = rgFF.getCheckedRadioButtonId();
 
 
 
		 rbFF = (RadioButton) findViewById(idChoix);
 
 
 
 
		lvFrais.setOnItemClickListener(new OnItemClickListener() {
 
 
 
			@Override
			public void onItemClick(AdapterView<?> adapter, View v,
					int position, 
					long id) {
 
				String lib, date, qt;
 
				Cursor row = (Cursor) adapter.getItemAtPosition(position);
 
 
				ff_ID = row.getString(0);
 
				Toast.makeText(FraisForfaitActivity.this, row.getString(3), 
						Toast.LENGTH_LONG).show();
 
				lib = row.getString(3);
				date = row.getString(2);
				qt = row.getString(4);	
				txtQuantite.setText(qt);		
				txtDate.setText(date);
 
				if ("Repas".equals(lib.trim()))
					rgFF.check(R.id.rbRepas);
				if ("Nuitée".equals(lib.trim()))
					rgFF.check(R.id.rbNuite);
				if ("KM".equals(lib.trim()))
					rgFF.check(R.id.rbKm);
				if ("Etape".equals(lib.trim()))
					rgFF.check(R.id.rbEtape);
 
			}
 
		});
 
 
 
 
		garnirListView();
 
 
 
 
	}
 
	public void insertionFraisForfait(View v) {
 
		String presta;
		//Recup le choix de la préstation RadioButton
 
		 rgFF = (RadioGroup) findViewById(R.id.rg1);
 
		 int idChoix = rgFF.getCheckedRadioButtonId();
 
		 rbFF = (RadioButton) findViewById(idChoix);
 
		 //Recup de la quantité 
		txtQuantite = (EditText) findViewById(R.id.etQuantite);
 
 
		spinnerPV = (Spinner) findViewById(R.id.spinner1);
 
		presta= rbFF.getText().toString();
 
 
 
	if (rbFF.getText().toString().equals("Km")) {
 
		presta=String.valueOf(spinnerPV.getSelectedItem());
	}
 
 
		txtDate =(EditText) findViewById(R.id.etDate);
 
		String numVis=dao.recupIdVisiteur();
 
		FraisForfait ff = new FraisForfait (numVis, presta, 
				txtDate.getText().toString(),
				Integer.parseInt(txtQuantite.getText().toString()) );
 
 
		Toast.makeText(FraisForfaitActivity.this, presta + " "+ 
		Integer.parseInt(txtQuantite.getText().toString())
				+"  "+
		ff.getDate() + "   " +numVis ,
				Toast.LENGTH_LONG).show();
 
		dao.sqlInsererFraisForfait(ff);
 
		this.garnirListView();
 
	}
 
 
 
	public void initialiserQuantite(View v){
		txtQuantite = (EditText) findViewById(R.id.etQuantite);
		txtQuantite.setText("1");
 
	}
 
	public void initialiserKM(View v){
		txtQuantite = (EditText) findViewById(R.id.etQuantite);
		txtQuantite.setText("0");
 
	}
 
	@SuppressWarnings("deprecation")
 
	public void garnirListView() {
 
		Cursor c = dao.tousLesFraisForfait();
		adapter = new SimpleCursorAdapter(
				this,
				R.layout.activity_item_frais_forfait,
				c,
				new String[] {Dao.C_IDFRAISFORFAIT,  Dao.C_DATE, Dao.C_QUANTITE },
				new int[] { R.id.tvLib, R.id.tvDate2, R.id.tvMnt2 });
 
		lvFrais.setAdapter(adapter);
 
	}
 
	public void modifierFF(View v){
		dao.sqlModifFrais(frais, ff_ID);
 
		//garnirListView();
	}
 
	public void supprimerFF(View v){
 
		dao.sqlSupprimerFraisForfait(ff_ID);
 
 
		garnirListView();
 
 
		}
 
 
 
	public void  dateSysteme() {
 
		//Date systeme
 
 
			SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
	        Date date = new Date();
	        String nowDate = dateFormat.format(date);
 
			txtDate =(EditText) findViewById(R.id.etDate);
			txtDate.setText(nowDate);
 
	}
 
 
 
 
}
J'ai essayé la même méthode que pour supprimer, qui fonctionne. Mais pour la modification, il y a une erreur.

Merci d'avance de votre aide.