java - 在 SQLite 中显示具有给定 id 的行(SELECT WHERE 语句)不起作用 Android Studio
问题描述
我的SqliteOpenHelper
课堂上有这个方法:
public String getTablica(int id,Context context)
{
SQLiteDatabase db=this.getWritableDatabase();
String query="SELECT "+COL2+" FROM "+TABLE_NAME+" WHERE "+COL1+"="+id;
Cursor cursor=db.rawQuery(query,null);
try {
cursor.moveToFirst();
return cursor.getString(1);
}
catch(Exception ex)
{
Toast.makeText(context,ex.getMessage(),Toast.LENGTH_LONG).show();
return "";
}
}
我在 cursor.getString(1) 行上收到此错误
我只想打印具有与函数参数中的 id 匹配的 id 的第一行...但是我收到此错误,如何解决它以及我做错了什么?
解决方案
来自文档:
getString (int columnIndex) 将请求列的值作为字符串返回。
当列值为 null 或列类型不是字符串类型时,结果以及此方法是否引发异常是实现定义的。
参数
columnIndex int:目标列的从零开始的索引。
因此方法getString()
参数索引从 0 开始。您正在请求索引为 1 的参数,即第二列。
return cursor.getString(1);
由于您在 SELECT 语句中只请求一列,并且您正试图获取第二列,因此存在异常,这就是它失败的原因。
要修复它,请将此行更改为上一行:
return cursor.getString(0);
推荐阅读
- javascript - 使用 React 装饰器是一个好习惯吗?
- usb - USB RAW (BULK) VISA Read/Write inside loop 太慢?
- ios - Swift Anchor 底部两个按钮,一个在左边,一个在右边
- c# - 使用与服务器 '.\SQLEXPRESS' 上的数据库 'ESCRestaurantDB' 的连接发生
- ruby - 在 ruby 中初始化随机数生成器(即设置种子)?
- javascript - JS Async/Await vs Promise vs Callbacks
- android - 如何在 Android 上的 onCreate() 和 onResume() 上设置条件?
- css - CSS过渡效果“滞后”
- python - 我在 python 中的刽子手游戏代码没有给出正确的输出
- javascript - 使用 nodejs/ffmpeg 合并输入流