2012-04-26 13 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; 


    } 

columnas de tabla "Identificación, imagen, comentario"SQLite cómo conseguir artículos de cadena usando el cursor

quiero tomar valores de pic & comentario a matriz de cadenas.

Mi código es:

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

esto no trabaja.

+0

¿Qué error que tienes ?? –

Respuesta

10

las que debe hacerlo de esta manera:

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

y

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

2

Y lo que debe hacer es sustituir

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

Por

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

simplemente use moveToNext en su ciclo para repetir.

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")); 
} 

Utilice esta. Espero que te ayude.

3

Esta es la forma en que lo hago

prefiero

getColumnIndex()

en lugar del número.

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(); 

Utilice siempre el nombre de la columna en lugar de la posición, porque la posición de la columna puede cambiar.

Por supuesto, el nombre de la columna también puede cambiar, pero supongamos que agrega una nueva columna y se ubica entre la columna 1 y la columna 2. Necesita cambiar su código si usa el número. Pero si usa el nombre, estará bien.

y es más fácil de leer y lo que sucedió si usted tiene 40 columnas? (< -algunos dicen, es malo)

+1

Esta es la mejor y más simple respuesta – DevMike

Cuestiones relacionadas