2013-01-11 2 views
1

J'ai une base de données dans mon application avec plusieurs colonnes dont 3 sont: _idnameselected.
Maintenant, je veux lire une seule valeur selected d'une rangée avec le name étant une chaîne que je reçois d'un code. Quelle serait la meilleure façon de faire cela?
MerciLire une valeur à partir d'une base de données

P.S. J'obtiens cette valeur pour vérifier si c'est 0 ou 1 (seulement deux valeurs possibles), donc je veux demander comment faire une sorte d'instruction if dans le champ return? Je l'ai vu certaines personnes le font avec quelque chose qui ressemble à ceci: return true ? ... false

EDIT:
D'accord, voici mon code atm, n'a pas encore vérifié depuis que je dois faire d'autres choses pour obtenir le tout , mais je pense qu'il pourrait y avoir une meilleure façon de le faire.

public boolean isBandSelected(String name) { 
    // TODO Auto-generated method stub 
    Cursor cursor = mDb.query("bands", new String[] { "selected" }, "name=" 
      + name, null, null, null, null); 
    int index = cursor.getColumnIndex("selected"); 
    String selected = cursor.getString(index); 
    return selected == "1"; 
} 
+2

Je ne comprends pas. Quelle colonne est ce 0 ou 1 sous? Et en passant, cette syntaxe est 'return a_condition? this_if_true: this_if_false' – JesseTG

+0

Veuillez fournir un extrait de code complet qui illustre ce que vous essayez de faire. –

+0

p.s. Il semble que vous décriviez le [opérateur ternaire] (http://en.wikipedia.org/wiki/%3F :). –

Répondre

2

Vous pouvez utiliser une expression régulière pour faire correspondre des lignes dont le champ de nom est une chaîne. De nombreuses bases de données peuvent prendre en charge l'expression régulière.

L'opérateur ternaire (? :) peut être utilisé pour faire une déclaration de retour comme ceci.

return value == 0 ? false : true 

Mais cela dépend du type de données que vous souhaitez retourner. Le code ci-dessus renvoie le type de données booléen.

La dernière ligne de votre code ci-dessus retournera toujours false. C'est parce que l'opérateur == compare la référence des deux objets. vous pouvez utiliser:

return "1".equals(selected); 
+1

Vous n'avez pas besoin d'un opérateur ternaire pour cela. Renvoyez simplement 'value! = 0'. – JesseTG

+0

Oui, vous avez raison. Je suppose que le questionneur a été interrogé sur l'opérateur ternaire. – wawlian

+0

Merci pour les réponses mates mais quelqu'un peut-il élaborer un peu plus loin sur les "valeurs des bases de données"? :) – murtaugh

Questions connexes