2010-12-07 4 views
1

J'ai une base de données à une ligne pour enregistrer les données de l'application. Mon but est de lire une colonne (une valeur).Android SQLiteDatabase: lecture d'une colonne

Cette requête renvoie toutes les colonnes d'un curseur:

public Cursor readAll() { 
     return getReadableDatabase().query(tableName, null, null, null, null, null, null); 
    } 

Il renvoie un curseur avec une ligne en elle, tout simplement parfait. Cependant, je ne veux pas lire toutes les colonnes à la fois, car c'est lent car j'ai aussi des blobs en db. Au lieu de cela, je voudrais lire juste une colonne à la fois, séparément. Par exemple, pour une colonne appelée « TEXT » ce serait ceci:

public Cursor readText() { 
     String[] projection = new String[]{"TEXT"}; 
     return getReadableDatabase().query(tableName, projection, null, null, null, null, null); 
    } 

Cependant, cela ne fonctionnera pas, comme je reviens d'un curseur avec zéro lignes. Alors, comment lire une colonne spécifique à partir de SQLiteBatabase dans Android?

+0

Vous pouvez envisager d'utiliser SharedPreferences ici si u ne stockent pas de données binaires dans db. Ce sera rapide et facile. – Varun

Répondre

0
public Cursor readText() { 
     return getReadableDatabase().rawQuery("SELECT colName FROM myTable", new String[] {}); 
    } 
0

La syntaxe semble correcte. Vérifiez s'il vous plaît que vous utilisez le bon nom de la colonne. L'affichage du code de génération de table et du code de requête réel pourrait aider.

0

Vous pouvez utiliser aussi celui-ci

public Cursor readText() { 
    return getReadableDatabase().rawQuery("SELECT column_name FROM table_name", null); 
} 
Questions connexes