2011-09-12 15 views
5

Estoy desarrollando una aplicación de menú de restaurante. Mi aplicación tiene una mesa de SQLite que tiene las siguientes columnas:sqlite de Android: cómo recuperar datos específicos de una columna en particular?

"id", "category", "item_name" 

contenido de la columna categoría es de tipo cadena. La clave principal de la tabla es id.

Deseo recuperar datos de una categoría en particular.

Por ejemplo, quiero recuperar los nombres de los elementos de todos los artículos que están en la categoría Veg y luego mostrar este resultado en la vista de lista.

He intentado seguir diferentes consultas, pero ninguno de ellos funciona. Por favor, ayúdame.

String vg ="Veg"; 
Cursor mCursor = database.query(true, DATABASE_TABLE, new String[] { 
      KEY_ROWID, KEY_CATEGORY, KEY_NAME,KEY_PRIZE,KEY_DESCRIPTION }, 
     KEY_CATEGORY + "=" + vg , null, null, null,null, null); 
     if (mCursor != null) {    
         mCursor.moveToFirst(); 
     } 
     return mCursor; 

consulta Raw

String query = "SELECT * FROM todo WHERE category =" + vg ; 
      Cursor cursor = database.rawQuery(query,null); 
      if (cursor != null) { 
       cursor.moveToFirst(); 
      } 
      return cursor; 
+0

http://stackoverflow.com/questions/6653502/android-sqlite -how-to-get-particular-columnrow-value http://stackoverflow.com/questions/5974799/how-can-i-retrieve-a-particular-coloumn-from-sqlite-in-android –

Respuesta

14

probar esto:

String query = "SELECT * FROM todo WHERE category='" + vg; 

Cursor cursor = database.rawQuery(query,null); 

     if (cursor != null) { 
      cursor.moveToFirst(); 
     } 
     return cursor; 
+1

Gracias, esto también funciona. 'faltaba después de' '=' 'de mi consulta. – sagar

9
String query = "SELECT item_name FROM todo WHERE category =" + vg ; 
Cursor cursor = database.rawQuery(query,null); 
if (cursor.moveToFirst()) { 
     while (cursor.isAfterLast() != true) { 
      string itemname = cursor.getString(cursor.getColumnIndex("item_name"))); 
      } 
} 

Aquí moveToFirst comprueba si hay elementos que satisfacen los criterios y luego recorre cursor utilizando el bucle while. El nombre de elemento de cadena puede reemplazarse por lista adaper para rellenar los datos. Espero que esto ayude.

1

Prueba esto:

String vg ="Veg"; 
return database.rawQuery("SELECT * FROM subjects where " + KEY_CATEGORY + " = ?", 
          new String[]{vg}); 
0
String q="SELECT * FROM todo WHERE category='" + vg +"'"; 
    SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor cursor = null; 
     cursor = db.rawQuery(q, null); 
     if (cursor.moveToFirst()) { 
      do { 

      } while (cursor.moveToNext()); 

     } 
5
dbHelper = new DBHelper(getApplicationContext()); 
SQLiteDatabase db = dbHelper.getReadableDatabase(); 

Cursor cursor = db.rawQuery("select * from centuaryTbl where email='"+email+"'",null); 
if (cursor.moveToFirst()) 
{ 
    do 
    { 
     String s1 = cursor.getString(cursor.getColumnIndex("s1")); 
     String s2 = cursor.getString(cursor.getColumnIndex("s2")); 
     String s3 = cursor.getString(cursor.getColumnIndex("s3")); 


    }while (cursor.moveToNext()); 
} 
0
String selectQuery = "select * from " + TABLE; 
     sqlDatabase = this.getWritableDatabase(); 

    Cursor cursor = sqlDatabase.rawQuery(selectQuery, null); 

    if (cursor != null) { 
     cursor.moveToFirst(); 
    } 


    return cursor; 

Esto le ayudará a ..

1
String query = "SELECT * FROM Table_Name WHERE Col_Name='name'"; 
Cursor cursor = mDb.rawQuery(query, null); 
+0

Si bien este código puede responder a la pregunta, proporcionar un contexto adicional con respecto a por qué y/o cómo responde este código a la pregunta mejora su valor a largo plazo. –

Cuestiones relacionadas