我是相當新到Android,所以我有這個功能,需要從我的數據庫選擇隨機記錄,以便我所做的就是在我的dbhelper創建一個函數就這樣充分利用SQLite數據庫隨機數據在Android中
更新功能來選擇隨機記錄
public List<Restaurant> getSOMERESTAURANT()
{
List<Restaurant> restaurants = new ArrayList<Restaurant>();
SQLiteDatabase db = this.getWritableDatabase();
Cursor c = db.rawQuery("SELECT * FROM " + TABLE_RESTAURANT ,null);
int cnt = c.getCount();
//get total number of records in the database
String offsetSize = "" + c.getCount();
Log.d("Offset Size: " , offsetSize);
//String selectQuery = "SELECT * FROM " + TABLE_RESTAURANT + " LIMIT 1 OFFSET " + cnt;
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_RESTAURANT + " LIMIT 1 OFFSET " + cnt, null);
//check if there was something selected
String scnt = "" + cursor.getCount();
Log.d("Size: " , scnt);
if (cursor.moveToFirst()) {
do {
Restaurant rest = new Restaurant();
rest.setrID(Integer.parseInt(cursor.getString(0)));
rest.setArea(cursor.getString(1));
rest.setRestaurant(cursor.getString(2));
restaurants.add(rest);
} while (cursor.moveToNext());
}
return restaurants;
}
我添加日誌我的數據庫總規模在那裏我得到正確的數據,但是當我用它來搜索查詢我的隨機記錄它返回的大小爲0有關我的選擇查詢出了什麼問題的任何想法?
然後在我的其他Java類我嘗試看看是否我在這裏獲得隨機數據是代碼,我有
Log.d("Reading: " , "RANDOM..");
List<Restaurant> randome = db.getSOMERESTAURANT();
for(Restaurant r : randome)
{
String rdata = r.getrID() + " " + r.getArea() + " " + r.getRestaurant();
Log.d("Restaurants" , rdata);
}
的事情是即時消息沒有得到任何東西只是Log.d("Reading: " , "RANDOM..");
沒有事後的數據。任何想法,我做錯了什麼?
檢查什麼的'randome'列表 –
大小嚐試調試方法「getSOMERESTAURANT() 「.check selectQuery,while循環退出條件 –
嗨我添加了大小的日誌和問題是我的選擇查詢隨機記錄任何想法我的錯誤是什麼?謝謝 – BourneShady