android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1
2015-09-10 14:36
525 查看
android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1
android 中数据库处理,特别是使用cursor时,注意初始位置,好像是从下标为-1的地方开始的,也就是说一次查询中,返回给cursor查询结果时,不能够马上从cursor中提取值。
比如,下面的代码会返回错误,android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 0:
正确的用法:
android 中数据库处理,特别是使用cursor时,注意初始位置,好像是从下标为-1的地方开始的,也就是说一次查询中,返回给cursor查询结果时,不能够马上从cursor中提取值。
比如,下面的代码会返回错误,android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 0:
<p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><span style="font-size: 18px;"><span class="kwd">int</span><span class="pln"> score </span><span class="pun">=</span><span class="pln"> </span><span class="pun">((</span><span class="typ">Cursor</span><span class="pun">)</span><span class="pln">getReadableDatabase</span><span class="pun">().</span><span class="pln">query</span><span class="pun">(</span><span class="pln">TABLE_NAME</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">String</span><span class="pun">[]{</span><span class="str">"learned"</span><span class="pun">},</span><span class="pln"> </span><span class="str">"_id=?"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">String</span><span class="pun">[]{</span><span class="str">""</span><span class="pun">+</span><span class="pln">id</span><span class="pun">},</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="str">"1"</span><span class="pun">)).</span><span class="pln">getInt</span><span class="pun">(</span><span class="lit">0</span><span class="pun">);</span></span></p>
正确的用法:
<p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><span style="font-size: 18px;"><span class="pln"> </span><span class="typ">Cursor</span><span class="pln"> cursor </span><span class="pun">=</span><span class="pln"> getReadableDatabase</span><span class="pun">().</span><span class="pln">query</span><span class="pun">(</span><span class="pln">TABLE_NAME</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">String</span><span class="pun">[]{</span><span class="str">"learned"</span><span class="pun">},</span><span class="pln"> </span><span class="str">"_id=?"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">String</span><span class="pun">[]{</span><span class="str">""</span><span class="pun">+</span><span class="pln">id</span><span class="pun">},</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="str">"1"</span><span class="pun">);</span> <span class="pln"> </span><span class="kwd">int</span><span class="pln"> learned</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span> <span class="pln"> </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">cursor</span><span class="pun">.</span><span class="pln">moveToFirst</span><span class="pun">()){</span> <span class="pln"> score</span><span class="pun">=</span><span class="pln"> cursor</span><span class="pun">.</span><span class="pln">getInt</span><span class="pun">(</span><span class="lit">0</span><span class="pun">);</span> <span class="pln"> </span><span class="pun">}</span> <span class="pln"> cursor</span><span class="pun">.</span><span class="pln">close</span><span class="pun">();</span></span></p><div><span style="font-size: 18px;"><span class="pun"> </span></span></div>
相关文章推荐
- U3D里UI相关逻辑和文件的组织关系的各种形式的比较
- iOS UUID deprecated corebluetooth
- iOS如何利用UITableView实现单选效果
- JAVA UUID 生成
- UnexpectedValueException Could not parse version constraint ^1.0.2: Invalid version string “^1.0.2”
- ubuntu12.04 create SAP issues
- SAP SD 顾问面试问题 consultant interview questionnaire
- Build Settings中的变量@rpath,@loader_path,@executable_path
- request与session区别
- 改变UITextField PlaceHolder的字体和颜色,不影响正常输入
- PowerBuilder12.5和PowerBuilder12.6数据管道的问题
- Exception occurred during processing request: null java.lang.NullPointerException
- UIActivityIndicatorView
- UI一揽子计划 13 (UITabBarController 、UITabBar、UITabBarItem 、Block传值)
- UI一揽子计划 12 (模态ViewController、单例、通讯录实战、)
- UI一揽子计划 11 (自定义UITableViewCell、Cell 的自适应高度)
- UI一揽子计划 10 (UITableView 中cell 的编辑, 增加, 删除、UITableViewController 、)
- UI一揽子计划 9 (UITableView 、UITableView 、重用机制)
- UI一揽子计划 8 (UINavigationController 、界面通信 、NSTimer 、NSUserDefaults)
- UI一揽子计划 7 ( UIScrollView、 UIPageControl、综合所学简单相册)