基本上我有这个:
Cursor cur = ...
for (int i = 0; i < cur.getColumnCount(); i++) {
String name = cur.getColumnName(i);
Log.d("dao",name);
int type = cur.getType(i);
...并且getType()
调用上面的例外。
列名称记录正确。
错误AndroidRuntime引起的: android.database.CursorIndexOutOfBoundsException:索引-1请求, 大小为0
答案 0 :(得分:1)
这是SQLite数据库的一个功能,它使用动态类型。也请检查this。 你为什么不用:
Cursor cur = ...
if (cursor != null) {
while (cursor.moveToNext()) {
String name = cur.getColumnName(i);
int type = cur.getType(i);
...
}
}
这样,如果存在一行,则只询问类型。
如果您需要独立于任何结果的列类型,您可以使用:
String tableName = "...";
Cursor cursor = rawQuery("pragma table_info(" +tableName +")");
String type = getString(0);
String name = getString(1);
希望这有帮助......干杯!