2011-09-12 36 views
5

Tôi đang phát triển ứng dụng menu nhà hàng. Ứng dụng của tôi có bảng sqlite có các cột sau:Android sqlite: cách truy xuất dữ liệu cụ thể từ cột cụ thể?

"id", "category", "item_name" 

Nội dung của cột danh mục có dạng chuỗi. Khóa chính của bảng là id.

Tôi muốn truy xuất dữ liệu của danh mục cụ thể.

Ví dụ: tôi muốn truy xuất tên mục của tất cả các mục nằm trong danh mục Veg và sau đó hiển thị kết quả này trong chế độ xem danh sách.

Tôi đã thử các truy vấn khác nhau nhưng cả hai đều không hoạt động. Làm ơn giúp tôi.

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; 

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

Trả lời

14

thử điều này:

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

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

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

Cảm ơn, điều này cũng làm việc. 'bị thiếu sau "=" từ truy vấn của tôi. – 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"))); 
      } 
} 

Đây moveToFirst kiểm tra nếu có các mục đáp ứng các tiêu chí và sau đó vòng qua con trỏ sử dụng vòng lặp while. Chuỗi itemname có thể được thay thế bằng danh sách adaper để điền dữ liệu. Hi vọng điêu nay co ich.

1

Hãy thử điều này:

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; 

này sẽ giúp bạn ..

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

Mặc dù mã này có thể trả lời câu hỏi, cung cấp ngữ cảnh bổ sung về lý do và/hoặc cách mã này trả lời câu hỏi cải thiện giá trị lâu dài của nó. –

Các vấn đề liên quan