2013-01-10 31 views
9

tôi đang tạo ra một cơ sở dữ liệu và tôi cần phải đọc tất cả các bản ghi từ cơ sở dữ liệu, nhưng chương trình của tôi vẫn bị treo ở tuyên bố này:Bắt tất cả hồ sơ từ sqlite android

newWord= db.getAllRecords(); 

Tôi giả sử có một vấn đề với getAllRecords (), vì Eclipse không có lỗi.

public Cursor getAllRecords() { 
db = dBHelper.getWritableDatabase();//obtains the writable database 
return db.query(DATABASE_TABLE, new String[] { KEY_ROWID,KEY_WORD}, null, null, null,  null, null);//the query used to obtain all records form the table 

} 

Bất kỳ ý tưởng nào?

+5

xác định sự cố? Đăng theo dõi ngăn xếp – Woot4Moo

+1

Không chỉ tôi là kẻ chậm phát triển:/Tôi bỏ lỡ tên cột trong chuỗi tạo –

Trả lời

13

Dưới đây là những gì tôi làm để có được tất cả các nội dung từ một bảng ..

public ArrayList<MyObject> getAllElements() { 

    ArrayList<MyObject> list = new ArrayList<MyObject>(); 

    // Select All Query 
    String selectQuery = "SELECT * FROM " + MY_TABLE; 

    SQLiteDatabase db = this.getReadableDatabase(); 
    try { 

     Cursor cursor = db.rawQuery(selectQuery, null); 
     try { 

      // looping through all rows and adding to list 
      if (cursor.moveToFirst()) { 
       do { 
        MyObject obj = new MyObject(); 
        //only one column 
        obj.setId(cursor.getString(0)); 

        //you could add additional columns here.. 

        list.add(obj); 
       } while (cursor.moveToNext()); 
      } 

     } finally { 
      try { cursor.close(); } catch (Exception ignore) {} 
     } 

    } finally { 
     try { db.close(); } catch (Exception ignore) {} 
    } 

    return list; 
} 
-1
Cursor c = ourDatabase.rawQuery("SELECT * FROM table_name", null); 
     if(c!=null){ 
      c.moveToFirst(); 
     } 
     return c; 
2
public void printTableData(String table_name){ 
    SQLiteDatabase db = getReadableDatabase(); 

    Cursor cur = db.rawQuery("SELECT * FROM " + table_name, null); 

    if(cur.getCount() != 0){ 
     cur.moveToFirst(); 

     do{ 
      String row_values = ""; 

      for(int i = 0 ; i < cur.getColumnCount(); i++){ 
       row_values = row_values + " || " + cur.getString(i); 
      } 

      Log.d("LOG_TAG_HERE", row_values); 

     }while (cur.moveToNext()); 
    } 
} 
0
Initialize TABLE: 
    private static String TABLE="your_table_name"; 

Để nhận được danh sách của tất cả các hồ sơ, viết phương pháp sau đây vào lớp cơ sở dữ liệu của bạn:

public ArrayList<RecentStickerModel> getAllRecentRecords() { 

    ArrayList<RecentStickerModel> listStickers = new ArrayList<>(); 

    SQLiteDatabase db = getWritableDatabase(); 

    String q = "SELECT name from sqlite_master WHERE type='table' AND name='" + TABLE + "'"; 
    Cursor cursorTable = db.rawQuery(q, null); 

    if (cursorTable != null && cursorTable.moveToFirst()) { 

     String tableName = cursorTable.getString(0); 
     cursorTable.close(); 

     if (TABLE.equals(tableName)) { 

      String query = "Select * from " + TABLE ; 

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

      if (cursor != null && cursor.moveToFirst()) { 

       Logger.e(TAG, "cursor size:" + cursor.getCount()); 

       int catNameCI = cursor.getColumnIndex(KEY_CAT_NAME); 
       int imagePathCI = cursor.getColumnIndex(KEY_IMAGE_PATH); 
       int lastStickerTimeCI = cursor.getColumnIndex(KEY_LAST_STICKER_TIME); 


       do { 

        RecentStickerModel model = new RecentStickerModel(); 
        model.setCatName(cursor.getString(catNameCI)); 
        model.setImgStickerPath(cursor.getString(imagePathCI)); 
        model.setLastStickerTime(cursor.getString(lastStickerTimeCI)); 


        listStickers.add(model); 
       } while (cursor.moveToNext()); 

       cursor.close(); 
      } 
     } 

     db.close(); 
    } 

    return listStickers; 
} 

Sau đó gọi phương thức sau đây bạn muốn:

arrayListRecent=stickersListDatabase.getAllRecentRecords(); 
Các vấn đề liên quan