2011-09-12 20 views
5

レストランメニューアプリケーションを開発中です。私のアプリは、これらの列を持つsqliteテーブルを持っています:Android sqlite:特定の列から特定のデータを取り出す方法は?

"id", "category", "item_name" 

カテゴリの列の内容は文字列です。テーブルの主キーはidです。

特定のカテゴリのデータを取得したいと考えています。

たとえば、カテゴリVegにあるすべてのアイテムのアイテム名を取得し、この結果をリストビューで表示したいとします。

私はさまざまなクエリを試してみましたが、どちらも機能していません。私を助けてください。

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; 

生のクエリ

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-specific-columnrow-value http://stackoverflow.com/questions/5974799/how-can-i-retrieve-a-particular-coloumn-from-sqlite-in-android –

答えて

14

この試してみてください。ここでは

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

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

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

ありがとう、これも動作します。 '='の後に '='が見つかりませんでした。 – 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"))); 
      } 
} 

を基準にして、ループしながら使用してカーソルをループを満たす項目がある場合はチェックをmoveToFirst。 itemnameという文字列をlist adaperに置き換えて、データを入力することができます。お役に立てれば。

1

これを試してみてください:

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; 

が、これはあなたを助けるでしょう。..

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

このコードは質問に答えるかもしれませんが、このコードが質問に答える理由および/または方法に関する追加の文脈を提供することで、長期的な価値が向上します。 –

関連する問題