在Sqlite中返回非现有列的类型?

时间:2014-04-29 08:53:24

标签: android sqlite android-cursor

我的代码根据某些条件为某些表生成动态列。 该列可能存在也可能不存在。

所以我在做 -

cur.getString(cur.getColumnIndex("Dynamic_Column_Name"))

cur.getColumnIndex(“Dynamic_Column_Name”)的api说 -

  

返回给定列名的从零开始的索引,如果是,则返回-1   列不存在。

因此,如果Dynamic_Column_Name不是我表格中的列,那么它将是 -

cur.getString(-1)

cur.getString(-1)的api表示 -

  

以String形式返回所请求列的值。结果和   当列值为null时,此方法是否抛出异常   或者列类型不是字符串类型是实现定义的。

那么在我的情况下返回类型是什么,还是会通过一些例外?

有没有最好的方法来处理这种情况?

1 个答案:

答案 0 :(得分:2)

你会得到一个例外。具体做法是:

  

java.lang.IllegalStateException:无法从CursorWindow读取第n行col -1。在从中访问数据之前,请确保Cursor已正确初始化。

为避免这种情况,请在使用之前检查列索引是否为-1。