Come ottenere il valore della colonna dal cursore sqlite?

Sto cercando di ottenere il valore della colonna da un cursore, questa colonna è generata in fase di esecuzione dai calcoli all’interno della query, sto ottenendo un valore nullo di questa colonna, sono in grado di ottenere un valore di tutte le altre colonne che esiste nella tabella SQLite .

Eseguo la stessa query sull’editor SQLite, mostra anche il valore della colonna generata nel set di risultati.

Perché questo dà un valore nullo quando lo sto recuperando dal cursore?

Molto semplice puoi ottenerlo in entrambi i modi

String id = cursor.getString( cursor.getColumnIndex("id") ); // id is column name in db 

o

 String id = cursor.getString( cursor.getColumnIndex(0)); // id is first column in db 

I nomi delle colonne dei cursori fanno distinzione tra maiuscole e minuscole, assicurati di far corrispondere il caso specificato nel nome alias db o column

  1. Se non conosci l’indice delle colonne nella query di selezione, segui questo,

    Definisci costante per tutti i campi della tabella, quindi è facile ottenere il nome del campo che non è necessario verificare la sua magia

    creare una class Database Costant con il nome “DBConstant.java” e definire i campi della tabella

    public static final String ID = “id”;

    Quindi ottieni il valore dal cursore,

    cursor.getString (cursor.getColumnIndex (DBConstant.ID));

    cursor.getColumnIndex (nome del campo); restituisce l’indice della colonna del campo nell’istruzione select cursor.getString (indice della colonna). restituisce il valore che si trova su quella colonna

  2. Se conosci l’indice delle colonne nella tua query di selezione,

    cursor.getString (0);