2012-04-26 2 views
5
public Cursor getImages(long rowId) throws SQLException 
    { 
     Cursor mCursor = 
       db.rawQuery("select * from Pictures WHERE id=" + rowId + ";", null); 
     if (mCursor != null) { 
      mCursor.moveToFirst(); 
     } 
     return mCursor; 


    } 

colonne della tabella "id, pic, comment"Sqlite come ottenere oggetti stringa con il cursore

voglio prendere valori di pic & commento a matrice di stringhe.

Il mio codice è:

int i=0; 
     Cursor c1 = db.getImages(memberId);  
     c1.moveToFirst(); 
     while(c1.isLast()){ 
      pictures[i]=c1.getString(1); 
      comments[i]=c1.getString(2); 
      i++; 
     } 

questo non funziona.

+0

Che errore hai ?? –

risposta

10

si dovrebbe fare in questo modo:

c1.getString(cursor.getColumnIndex("pic"));

e

c1.getString(cursor.getColumnIndex("comment"));

2

E cosa si dovrebbe fare è di sostituire

c1.moveToFirst(); 
while(c1.isLast()){ 
    //your code 
} 

By

//c1.moveToFirst(); 
while(c1.moveToNext()){ 
    //your code 
} 
4

utilizzare semplicemente moveToNext nel ciclo per iterare.

while(ct.moveToNext()){ 
    pictures[i]=c1.getString(1); 
    comments[i]=c1.getString(2); 
    i++; 
} 
1
Cursor c = db.rawQuery("select username from user_information where username ='" + username_txt.getText() + "'", null); 
c.moveToFirst(); 
if (c.moveToFirst()) { 
    username = c.getString(c.getColumnIndex("username")); 
} 

Utilizzare questo. Spero che ti aiuti.

3

Questo è il modo in cui lo faccio

preferisco

getColumnIndex()

al posto del numero.

if(cursor.moveToFirst()){ 
    do{ 
      String varaible1 = cursor.getString(cursor.getColumnIndex("column_name1")); 
      String varaible2 = cursor.getString(cursor.getColumnIndex("column_name2")); 

     }while (cursor.moveToNext()); 
} 
cursor.close(); 

Utilizzare sempre il nome della colonna anziché la posizione, poiché la posizione della colonna può cambiare.

ovviamente il nome della colonna può cambiare, ma diciamo se si aggiunge una nuova colonna e si posiziona tra la colonna 1 e la colonna 2. È necessario modificare il codice se si utilizza il numero. Ma se usi il nome, starai bene.

ed è più leggibile e quello che è successo, se si dispone di 40 colonne? (< -alcuni dicono, è un male)

+1

Questa è la risposta migliore e semplice – DevMike