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 :

Problème insertion dans une base SQLite


Sujet :

Android

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Problème insertion dans une base SQLite
    Bonjour,

    Débutant en programmation Android je dois faire une application pour mes études

    L'application est une liste de recette sur laquelle on doit pouvoir effectuer plusieurs actions.

    J'ai un problème lorsque je veux insérer une table dans ma liste de recette via un menu

    Code du menu :
    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
    public class MenuActivity extends Activity
    {
    GestionBDD recetteBdd = new GestionBDD(this);
    Context monContext = this;
    String categorie ="";
     
    	public boolean onCreateOptionsMenu(Menu menu)
    	{
     
    		MenuInflater inflater = getMenuInflater();
    		inflater.inflate(R.menu.options_menu, menu);
    		return true;
    	}
     
    	public boolean onOptionsItemSelected(MenuItem item) {
    		this.setContentView(R.layout.ajout_recette);
    		Button btEnregRecette = (Button) findViewById(R.id.button);
     
    		final TextView titre = (TextView) findViewById(R.id.champTitre);
     
     
    		btEnregRecette.setOnClickListener(new Button.OnClickListener() {
    			public void onClick(View v) {
    				final TextView titre = (TextView) findViewById(R.id.champTitre);
    				RadioGroup radiogroup = (RadioGroup) findViewById(R.id.groupeBouton);
    				int boutonRadioCoche = radiogroup.getCheckedRadioButtonId();
     
    				switch(boutonRadioCoche)
    				{
    				case R.id.btnEntree :
    					categorie = "Entrée";
    				case R.id.btnPlat :
    					categorie = "Plat";
    				case R.id.btnDessert :
    					categorie = "Dessert";
    				}
    				recetteBdd.open();
    				Recette recette = new Recette(titre.getText().toString(),categorie); 
    				recetteBdd.insertRecette(recette);
    				Intent monIntent= new Intent(monContext,CookingRawActivity.class);
    				startActivity(monIntent);
    				recetteBdd.close();
     
    			}
     
    		});
    		return true;
     
    	}
    }
    Ma base de donnée :

    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
    public class MaBase extends SQLiteOpenHelper {
     
    	public static final String MABDD_NAME = "MaBDD.db";
    	public static final int MABDD_VERSION = 1;
     
    	public static final String TABLE_RECETTE ="table_recette";
    	public static final String COL_ID = "ID";
    	public static final String COL_TITRE = "TITRE";
    	public static final String COL_CATEGORIE = "CATEGORIE";
    	public static final String COL_TPSPREP = "TPSPREP";
    	public static final String COL_TPSCUISS = "TPSCUISS";
     
    	private static final String CREATE_BDD = "CREATE TABLE "+ TABLE_RECETTE + " (" + COL_ID +
    	" INTEGER PRIMARY KEY AUTOINCREMENT, "
    	+ COL_TITRE+ " TEXT NOT NULL," 
    	+ COL_CATEGORIE +" TEXT NOT NULL,"
    	+COL_TPSPREP + " INTEGER NOT NULL,"
    	+COL_TPSCUISS + " INTEGER NOT NULL);";
     
    	public MaBase (Context context)
    	{
    		super(context,MABDD_NAME,null,MABDD_VERSION);
    	}
     
    	@Override
    	public void onCreate(SQLiteDatabase db)
    	{
    		db.execSQL(CREATE_BDD);
    	}
     
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    	{
    		db.execSQL("DROP TABLE "+TABLE_RECETTE+";");
    		onCreate(db);
     
    	}
     
    }
    "Bout" de ma gestion de base de donnée qui bug :
    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
     
    public class GestionBDD {
    //Les variables
    	private SQLiteDatabase bdd;
    	private MaBase maBase;
    	private String[] colonnes = { MaBase.COL_ID, MaBase.COL_TITRE,
    			MaBase.COL_CATEGORIE };
     
    //Méthode d'insertion de recette
    public Recette insertRecette(Recette recette) {
     
    		ContentValues values = new ContentValues();
    		values.put(MaBase.COL_TITRE, recette.getTitre());
    		values.put(MaBase.COL_CATEGORIE, recette.getCategorie());
    		long insertId = bdd.insert(MaBase.TABLE_RECETTE, null, values);
    		Cursor cursor = bdd.query(MaBase.TABLE_RECETTE, colonnes, MaBase.COL_ID
    				+ " = " + insertId, null, null, null, null);
    		cursor.moveToFirst();
    		return cursorToRecette(cursor);
    	}
    En utilisant le debug je me suis rendu compte que ma variable insertId me renvoyer comme valeur -1 d'où le fait que je ne puisse pas insérer dans ma liste.

    Donc voilà je cherche quelqu'un pouvait m'expliquer pourquoi cette variable me renvoi -1.

    Pour ceux qui veulent le code de la classe 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
    34
    35
    36
    37
    38
    public class CookingRawActivity extends MenuActivity implements AdapterView.OnItemClickListener{
    	/** Called when the activity is first created. */
    	GestionBDD recetteBdd = new GestionBDD(this);
    	//MaBase mabase= new MaBase(this);
     
     
    	public void onCreate(Bundle savedInstanceState) 
    	{
    		super.onCreate(savedInstanceState);
    		recetteBdd.open();// ouverture de la base de donnée
     
    		//mabase.onCreate(recetteBdd.getBDD()); //REMISE A 0 de la base.
    		this.setContentView(R.layout.liste_recette);// ouverture de ma page xml
    		ListView mPhotosList = (ListView) findViewById(android.R.id.list);
     
    		final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    				android.R.layout.simple_list_item_1,recetteBdd.renvoiListeRecette());
     
    		mPhotosList.setAdapter(adapter);
    		mPhotosList.setOnItemClickListener(this);
     
    		recetteBdd.close();//fermeture de ma base
     
    	}
     
    	public void onItemClick(AdapterView parent, View v, int position, long id) {
    		setContentView(R.layout.recette_info);//on appelle notre xml
    		final TextView nomrecette = (TextView) findViewById(R.id.nomRecette);
    		final TextView larecette = (TextView) findViewById(R.id.nomCategorie);
    		recetteBdd.open();
    		long idRecette = id;
    		String[] aTableauInfoRecette = recetteBdd.infoRecette(idRecette);
     
    		nomrecette.setText(aTableauInfoRecette[0]);//affichage du nom de la recette
    		larecette.setText(aTableauInfoRecette[1]);// affichage de la recette
    		recetteBdd.close();
    	}
    }
    Petite précision : mon code marché avant que j'utilise la remise à 0 que j'ai mis en commentaire (je pense que le problème vient de là .


    Merci pour tous ceux qui ont lu tout le poste et qui sont prêts à m'aider.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Toujours personne de motivés ?

Discussions similaires

  1. Insertion dans une base SQLite sous Android
    Par ensinienne dans le forum Android
    Réponses: 1
    Dernier message: 03/04/2012, 09h19
  2. Problème format de champs pour insertion dans une base FileMaker
    Par guiguikawa dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/03/2007, 22h27
  3. problème d'insertion dans une base
    Par wiss20000 dans le forum JDBC
    Réponses: 13
    Dernier message: 05/03/2007, 11h02
  4. Problème d'insertion dans une base de donnèes
    Par atout dans le forum Administration
    Réponses: 14
    Dernier message: 27/12/2006, 07h07
  5. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13

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