Sqlite数据库查询操作使用 '%?%' 的问题,


public static final String QUERY_DREAM_BY_CONDITION = "select * from Journal where description like ’%?%‘ ";

Cursor cursor = db.rawQuery(ConstantUtil.QUERY_DREAM_BY_CONDITION, new String[]{condition}); // condition为查询条件


查询时会出错,log如下:

02-15 16:41:34.633: E/AndroidRuntime(10789): Uncaught handler: thread main exiting due to uncaught exception
02-15 16:41:34.803: E/AndroidRuntime(10789): android.database.sqlite.SQLiteException: bind or column index out of range: handle 0x4dbad8


具体原因好像是编码的问题:

参考资料:

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=2172

http://www.eoeandroid.com/thread-27411-1-1.html


解决办法,用两个 %%,且不能用在sql语句中 (select * from Journal where description like ’%%?%%‘ 这也是不行的)


public static final String QUERY_DREAM_BY_CONDITION = "select * from Journal where description like ?";

Cursor cursor = db.rawQuery(ConstantUtil.QUERY_DREAM_BY_CONDITION, new String[]{"%%"+condition+"%%"});

更多相关文章

  1. 使用android MediaPlayer播放音频文件时,有时会出现prepareasync
  2. android强制横屏息屏后重新打开时会先显示竖屏
  3. Android Layout的layout_height等属性为什么有时会不起作用?
  4. Android 手机QQ临时会话
  5. 新添的Activity 要在 manifest 中注册 否则界面跳转时会崩掉
  6. android 启动时会多显示一个闪现屏
  7. android菜单参考资料
  8. Android各层推荐开发书籍及参考资料

随机推荐

  1. 实例+详解剖析Android之自定义View
  2. 最近学习Android的一些体会
  3. 利用Android SDK免root权限抓屏
  4. 八款常见的Android游戏引擎
  5. 2017 Android暑期实习生面试经验谈
  6. Android利用Handler异步获取子线程中的产
  7. Android 中的缓存机制与实现
  8. 十年心得:一个优秀Android开发人员必须注
  9. 2019年Android版本分布(市场占有率、市场
  10. Android线程间的通信