2012-10-09 1 views
1

Je cours une requête dans ma classe DB Adapter quelque chose comme ceci où je fournis un ID et que je veux récupérer la ligne associée avec cette ID:Récupérer une seule ligne de la base de données SQLite et enregistrer les valeurs dans une variable individuelle et les afficher dans différentes vues de texte

public Cursor fetchRow(String a) { 
    String Key = a; 

    return mDb.query(DATABASE_TABLE0, new String[] {IDno1, GIDno1,Name1,Owner1,Breed1,Gender1}, "IDno=?",new String[]{Key}, null, null, null, null); 
} 

maintenant dans ma classe je veux lier les éléments retournés par cette requête à différentes variables, mais je suis confus comment y parvenir. Je suis en train de faire quelque chose comme:

private void fillData() { 
    Cursor c = DBHelper.fetchRow(); 

    // List<String> idList = new ArrayList<String>(); 
    if (c.moveToFirst()) { 


      } 
} 
+0

lire une documentation minimale (comme, la documentation de classe Cursor, guide de stockage de développeur android ...), essayer quelques choses, rencontrer un problème réel, poser une vraie question – njzk2

+0

J'ai fait un Curseur pour afficher la vue mais je n'arrive pas à comprendre ce que je fais ici! –

+0

Si ma réponse vous a aidé. Veuillez l'accepter comme réponse afin que d'autres puissent en bénéficier à l'avenir. – Scorpion

Répondre

2
try { 
      c = null; 
      String select = "Select * FROM tbl"; 
      c = db.rawQuery(select, null); 
      if (null!=c) { 
       while (c.moveToNext()) { 
        //Here you can directly set the value in textview 
        txtview.setText(c.getString(c.getColumnIndex("column_name"))); 
       } 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     }finally { 
      c.close(); 
     } 

De cette façon, vous pouvez obtenir vos valeurs et le mettre à l'textview directement. Si vous êtes sûr que vous avez seulement une ligne que ne pas utiliser while.

if (null!=c) { 
    c.moveToNext(); 
    txtview.setText(c.getString(c.getColumnIndex("column_name"))); 
} 

Espérons que cela aidera.

0

faire quelque chose comme ça faire une classe dans laquelle déclarer setter et getter

private void fillData() { 
    Cursor c = DBHelper.fetchRow(); 

    List<String> idList = new ArrayList<String>(); 
    if (c.moveToFirst()) { 
     do { 
      IdList q = new IdList(); 
      q.setid0(c.getString(0)); 
      q.setid1(c.getString(1)); 
      q.setid2(c.getString(2)); 
      q.setid3(c.getString(3)); 
      q.setid4(c.getString(4)); 
       idList .add(q); 
      } 
     } while (c.moveToNext()); 


    } 
} 

et obtenir la valeur de la classe et mis en textview

+0

Et comment définir les valeurs de la liste aux vues de texte? –

0

Vous devez quelque chose comme:

variable1 = c.getDouble(c.getColumnIndex("Column1")); 
variable2 = c.getString(c.getColumnIndex("Column2")); 
Questions connexes