1 pièce(s) jointe(s)
SQLiteException: table X has no column named Y
Bonjour,
Suite a plusieurs recherches, je me dirige vers vous pour avoir de l'aide.
j'ai créer une base de donnée et aussi une table dont j'ai vérifier la présence avec SQLite-Manager, je pense que le schéma de la table correspond bien a la requête sql, cependant quand j'essaye d'insérer des valeurs dans la table, erreur la colonne password n’existe pas !
Ceci est le code (classe UserSQLiteHelper) pour généré ma table que j'ai vérifier :
Code:
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
|
public static final String DATABASE_FILENAME = "user.db";
public static final int DATABASE_VERSION = 1;
public static final String TABLE_NAME = "users";
public static final String ID = "id";
public static final String NOM = "nom";
public static final String PRENOM = "prenom";
public static final String TELEPHONE = "telephone";
public static final String COURRIEL ="courriel";
public static final String LOGIN="login";
public static final String PASSWORD="password";
public static final String CREATE_TABLE="CREATE TABLE IF NOT EXISTS "+TABLE_NAME+" ("
+ID+" INTEGER PRIMARY KEY,"
+NOM+ " VARCHAR(50) NOT NULL, "
+PRENOM+ " VARCHAR(50) NOT NULL, "
+TELEPHONE+" INTEGER(11) NOT NULL, "
+COURRIEL+ " VARCHAR(50) NOT NULL, "
+LOGIN+ " VARCHAR(50) NOT NULL, "
+PASSWORD+ " VARCHAR(50) NOT NULL );";
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub*
//Log.i("database", "prepare creation");
db.execSQL(CREATE_TABLE);
//Log.i("database", "created");
} |
Pièce jointe 173835
Ceci est ma classe DAO (UserDAO) qui implémente la méthode createUser(User user):
Code:
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
|
private static SQLiteDatabase database;
private UserSQLiteHelper dbHelper;
private String[] allColumns = {UserSQLiteHelper.NOM,UserSQLiteHelper.PRENOM,
UserSQLiteHelper.TELEPHONE, UserSQLiteHelper.COURRIEL,UserSQLiteHelper.LOGIN,
UserSQLiteHelper.PASSWORD };
public UserDAO(Context context) {
this.dbHelper = new UserSQLiteHelper(context);
}
public void open() throws SQLException {
database = dbHelper.getWritableDatabase();
}
public void close() {
dbHelper.close();
}
public static boolean createUser(User user) {
ContentValues values = new ContentValues();
//values.put(UserSQLiteHelper.ID, user.getId());
values.put(UserSQLiteHelper.NOM, user.getNom());
values.put(UserSQLiteHelper.PRENOM, user.getPrenom());
values.put(UserSQLiteHelper.TELEPHONE, user.getTelephone());
values.put(UserSQLiteHelper.COURRIEL, user.getCourriel());
values.put(UserSQLiteHelper.LOGIN, user.getLogin());
values.put(UserSQLiteHelper.PASSWORD, user.getPassword());
try{
long insert = database.insert(UserSQLiteHelper.TABLE_NAME,null,
values);
if (insert==-1)return false;
} catch (Exception e) {
Log.e("Insertion", e.getMessage());
}
return true;
} |
et enfin voici l'activité qui recupère les valeurs saisie dans le formulaire et fait appel a la fonction qui insert dans la base de donnée:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
String nom=getIntent().getStringExtra("nom");
String prenom=getIntent().getStringExtra("prenom");
int telephone=Integer.valueOf(getIntent().getStringExtra("telephone"));
String courriel=getIntent().getStringExtra("courriel");
String login=getIntent().getStringExtra("login");
String pw=getIntent().getStringExtra("pw");
User user = new User();
user.setNom(nom);
user.setPrenom(prenom);
user.setTelephone(telephone);
user.setCourriel(courriel);
user.setLogin(login);
user.setPassword(pw);
UserDAO DAO = new UserDAO(CreateActivity.this);
DAO.open();
if(UserDAO.createUser(user)==true) Toast.makeText(getApplicationContext(), "USER CREER !!", Toast.LENGTH_SHORT).show();
else Toast.makeText(getApplicationContext(), "CREATION ECHOUEE", Toast.LENGTH_SHORT).show();
DAO.close(); |
En utilisant le Debugger j'ai pu vérifier que les valeurs de User(nom,prenom,....) existent bien !
Voila j'espère avoir été clair, et j'attends vos réponses car je galère :( .