我是相当新到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