【发布时间】:2022-03-17 22:33:53
【问题描述】:
我已经做了以下获取数据的功能。
public List<Presentation> getSlideMaster() {
List<Presentation> pptList = new ArrayList<Presentation>();
String selectQuery = "SELECT * FROM "
+ Constants.SLIDE_MASTER.slideMaster_Table + " WHERE dm_Id=" + lastDeckID;
SQLiteDatabase db = dbhelper.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
Presentation presentation = new Presentation();
presentation.setSlideId(cursor.getString(0));
getSlideID = presentation.getSlideId();
Log.i("string slide id in database helper", "" + presentation.getSlideId());
pptList.add(presentation);
} while (cursor.moveToNext());
}
String selectQuery2 = "SELECT sl_Id FROM "
+ Constants.SLIDE_LAYOUT.slideLayout_Table + " WHERE sm_Id = "
+ getSlideID;
Cursor cursorSL = db.rawQuery(selectQuery2, null);
Log.i("query", ""+selectQuery2);
if(cursorSL.moveToFirst()){
Log.i("getslideLayout function", "");
do{
Log.i("query string 0 ", ""+cursorSL.getString(0));
Presentation presentation = new Presentation();
presentation.setSlideLayoutId(cursorSL.getString(0));
getSlideLayoutId = presentation.getSlideLayoutId();
Log.i("string slide layout id in slideMaster", "" + getSlideLayoutId);
}while(cursorSL.moveToNext());
}
else{
Log.i("No Data Found!!!!!", "");
}
cursor.close();
cursorSL.close();
db.close();
return pptList;
}
我非常容易从 slideMaster_Table 获取数据,但我无法从另一个查询中获取数据,这不是在 if(cursorSL.moveToFirst()) 条件内的 Logcat 中打印任何值
当我在另一个活动中使用代码时,我可以很容易地获得 sl_Id。
【问题讨论】:
-
检查你的
cursorSL是否为空,使用Cursor类的getCount()方法。 -
使用
Cursor cursorSL = db.rawQuery(selectQuery2, new String[]{getSlideID});for selectQuery2="SELECT sl_Id FROM "+Constants.SLIDE_LAYOUT.slideLayout_Table + " WHERE sm_Id = ?"; -
@MM-BB,谢谢,但这对我不起作用。
-
向我们展示表格的内容和
getSlideID的返回值。 -
我添加了数据库的图像。getSlideID 的返回值是最后一列 sm_Id,我想要 sl_Id。
标签: android sqlite android-cursor