我的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匹配...但我得到这个错误,如何解决它以及我做错了什么?
答案 0 :(得分:0)
来自docs:
getString(int columnIndex) 以String形式返回所请求列的值。
结果以及当列值为null或列类型不是字符串类型时此方法是否抛出异常是实现定义的。
参数
columnIndex int:目标列的从零开始的索引。
因此方法getString()
参数索引从0开始。您正在请求索引为1的参数,即第二列。
return cursor.getString(1);
由于您只在SELECT语句中请求一列,并且您尝试获取第二列,因此存在异常,这就是它失败的原因。
要修复它,请将此行更改为上一行:
return cursor.getString(0);