You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从显示数据库记录的表格选中行取值?解决cursor取值报错

问题分析与解决

错误原因

  • 变量作用域问题:indexForName定义在try代码块内部,外部代码无法访问这个变量,导致编译报错。
  • 调用对象错误:代码里用row.getString(indexForName)是错的——row是行号(int类型),根本没有getString()方法,应该用Cursor对象cur来调用这个方法,这才是报“找不到符号”的核心原因。
  • 多余的异常捕获:getColumnIndex()不会抛出IOException,这段try-catch完全是多余的,没必要加。

修正后的代码

if(selectedRow > -1 && selectedRow == row) {
    // 获取Name字段的列索引,无需捕获IOException
    int indexForName = cur.getColumnIndex("Name");
    // 先判断列是否存在,避免索引为-1引发异常
    if(indexForName != -1) {
        // 用Cursor对象cur读取字段值,存入name变量供后续更新/删除使用
        String name = cur.getString(indexForName);
        // 此处可添加基于name变量的更新、删除逻辑
    }
    // 单元格样式设置保留
    cell.getAllStyles().setBgColor(0xff0000);
    cell.getAllStyles().setBgTransparency(100);
}

核心调整点

  • 把indexForName的定义移到try块外(直接删掉没用的try-catch),保证后续代码能正常访问它。
  • 替换调用getString()的对象为Cursor实例cur,这才是正确读取字段值的方式。
  • 增加indexForName != -1的判断,防止字段名写错或不存在时出现崩溃。

内容的提问来源于stack exchange,提问作者curtjacobs1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:12:43