souadkhel
Messages postés19Date d'inscriptionjeudi 12 mars 2015StatutMembreDernière intervention 8 juillet 2015
-
12 mars 2015 à 14:55
BunoCS
Messages postés15394Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention29 septembre 2023
-
16 mars 2015 à 10:36
Bjr a tous,
dans ma base données sqlite, j'ai 2 tables produit(code, designation,prix, famille_prod(foreign key de (codefamill) la table famille_prod) et famille_produit(codeFam, nomFam).
j'ai pu remplir un spinner avec ma liste de famille (nomFam) afin de sélectionner à quelle famille appartient mon produit. mais je ne sais pas comment determiner que dans la table produit je veux qu'il m'affiche dans la colonne famille_prod, le code de la famille selectionnée dans le spinner.
c'est a dire que je veux selectionner le nomFam dans le spinner et remplir la table produit avec le "code" de la famille selectionnée.
BunoCS
Messages postés15394Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention29 septembre 2023102 12 mars 2015 à 15:35
Hello,
Ce n'est pas très très clair... Qu'est-ce qui te bloque?
Les bases de données, ce n'est clairement pas pas tasse de thé, mais bêtement, je dirais qu'il faut faire une requête du type:
select * in produit where famille_prod = {ici ton 'code'}
merci d'avoir pris la peine de me répondre.
je t'explique plus en détails:
j'ai une "fiche produit" a remplir avec le code du produit, la designation, et la famille produit.
la famille produit est un spinner dans lequel se trouve tous les nom de famille des produits.
dans ma base de données, j'ai deux tables produit (code, designation,famille (foreign key de code_famille) et famille(code_famille, designation).
ce que je souhaite avoir, c'est quand je veux ajouter un produit et que je selectionne, dans mon interface de fiche produit, la famille_produit dans le spinner...je voudrais avoir le 'id' de la famille selectionnée dans la colonne code_famille de la table produit.
voila, j'espére que c'est plus clair.. merci
mon probléme n'est pas en base de données mais plus dans le programme.je veux dire que j'ai utilisé le
spinner.getItemSelectedId() mais ca ne marche pas, il m'affiche dans la colonne en question " android.database.sqlite.SQLiteCursor@b22879d8 " au lieu de m'afficher l'id!!
BunoCS
Messages postés15394Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention29 septembre 2023102 12 mars 2015 à 16:51
ça dépend comment tu remplis ton Spinner.
A priori, tu utilises des CursorAdapter. Dans ton onItemSelected(), il faut faire grosso modo ceci:
Cursor cursor = (Cursor)parent.getItemAtPosition(pos);
int id = cursor.getInt(c.getColumnIndexOrThrow("columm_name"));
souadkhel
Messages postés19Date d'inscriptionjeudi 12 mars 2015StatutMembreDernière intervention 8 juillet 2015 16 mars 2015 à 10:33
merci pr ta réponse, au fait j'ai juste utiliser "mon_spinner.getSelectedItemId()" de type "long" et sa a marché. mais merci comme même.
j'arrive a ajouter mes données a partir du spinner dans l base de données et j'arrive aussi a recuperer , les données specifiques a un produit grace a son "code" , vers le spinner.
mais maintenant, j'ai un autre souci qui est:
je veux faire defiler la liste des produits que j'ai enregistrer avec un bouton du premier jusqu'au dernier.... j'arrive a le faire avec les editText mais pas avec le spinner!
voici mes 4méthodes : pour aller vers le premier,dernier, précédent et suivant enregistrement dans la table produit :
c = bd.rawQuery("select * from Produits order by code asc ", null);
if (c.moveToLast()) {
edit1.setText(c.getString(0));
edit2.setText(c.getString(1));
edit3.setText(c.getString(2));
BunoCS
Messages postés15394Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention29 septembre 2023102
>
souadkhel
Messages postés19Date d'inscriptionjeudi 12 mars 2015StatutMembreDernière intervention 8 juillet 2015 16 mars 2015 à 10:36
Content que ton problème initial soit résolu.
Par contre, peux-tu ouvrir un nouveau sujet pour ton nouveau problème, s'il te plait, afin de garder une bonne visibilité?
12 mars 2015 à 16:21
je t'explique plus en détails:
j'ai une "fiche produit" a remplir avec le code du produit, la designation, et la famille produit.
la famille produit est un spinner dans lequel se trouve tous les nom de famille des produits.
dans ma base de données, j'ai deux tables produit (code, designation,famille (foreign key de code_famille) et famille(code_famille, designation).
ce que je souhaite avoir, c'est quand je veux ajouter un produit et que je selectionne, dans mon interface de fiche produit, la famille_produit dans le spinner...je voudrais avoir le 'id' de la famille selectionnée dans la colonne code_famille de la table produit.
voila, j'espére que c'est plus clair.. merci
12 mars 2015 à 16:25
spinner.getItemSelectedId() mais ca ne marche pas, il m'affiche dans la colonne en question " android.database.sqlite.SQLiteCursor@b22879d8 " au lieu de m'afficher l'id!!
12 mars 2015 à 16:51
A priori, tu utilises des CursorAdapter. Dans ton onItemSelected(), il faut faire grosso modo ceci:
16 mars 2015 à 10:33
j'arrive a ajouter mes données a partir du spinner dans l base de données et j'arrive aussi a recuperer , les données specifiques a un produit grace a son "code" , vers le spinner.
mais maintenant, j'ai un autre souci qui est:
je veux faire defiler la liste des produits que j'ai enregistrer avec un bouton du premier jusqu'au dernier.... j'arrive a le faire avec les editText mais pas avec le spinner!
voici mes 4méthodes : pour aller vers le premier,dernier, précédent et suivant enregistrement dans la table produit :
public void premierProduit(View view){
MaBaseSQLiteOpenHelper bdd = new MaBaseSQLiteOpenHelper(this,"factBDD", null, 1);
SQLiteDatabase bd = bdd.getWritableDatabase();
c = bd.rawQuery("select * from Produits order by code asc ", null);
if (c.moveToFirst()) {
edit1.setText(c.getString(0));
edit2.setText(c.getString(1));
edit3.setText(c.getString(2));
}
else
Toast.makeText(this, "Aucun enregistrement effectué" ,Toast.LENGTH_SHORT).show();
bd.close();
}
public void precedentProduit(View view){
try {
if (!c.isFirst()) {
c.moveToPrevious();
edit1.setText(c.getString(0));
edit2.setText(c.getString(1));
edit3.setText(c.getString(2));
} else
Toast.makeText(this, "Début de la liste",Toast.LENGTH_SHORT).show();
}catch (Exception e){
e.printStackTrace();
}
}
je ne sais pas comment ajouter l'appel pour mon spinner!!
merci
public void suivantProduit(View view){
try {
if (!c.isLast()) {
c.moveToNext();
edit1.setText(c.getString(0));
edit2.setText(c.getString(1));
edit3.setText(c.getString(2));
} else
Toast.makeText(this, "Fin de la liste",Toast.LENGTH_SHORT).show();
}catch (Exception e){
e.printStackTrace();
}
}
public void dernierProduit(View view){
MaBaseSQLiteOpenHelper bdd = new MaBaseSQLiteOpenHelper(this,"factBDD", null, 1);
SQLiteDatabase bd = bdd.getWritableDatabase();
c = bd.rawQuery("select * from Produits order by code asc ", null);
if (c.moveToLast()) {
edit1.setText(c.getString(0));
edit2.setText(c.getString(1));
edit3.setText(c.getString(2));
} else
Toast.makeText(this, "Aucun enregistrement effectué" ,Toast.LENGTH_SHORT).show();
bd.close();
}
16 mars 2015 à 10:36
Par contre, peux-tu ouvrir un nouveau sujet pour ton nouveau problème, s'il te plait, afin de garder une bonne visibilité?