【发布时间】:2011-11-26 08:55:54
【问题描述】:
我想使用以下代码在我的 android 应用程序中获取最后插入的行 ID:
String query = "SELECT * from SQLITE_SEQUENCE";
int createdUserId = Integer.parseInt(dbHelper.executeSQLQuery(query).toString());
但问题是它抛出了一个无法将dbHelper.executeSQLQuery(query).toString() 转换为整数的异常。我不太擅长 sqlite ,但我认为这应该返回插入的最后一行 id ......肯定会是 int (至少我是这样认为的)。因此,如果这不是正确的方法,有人可以指导我如何获取 android 应用程序中的最后一行 id。
谢谢!!!
【问题讨论】:
-
dbHelper 是什么实例?
-
为什么
SELECT声明 insert 什么?如果你真的要 insert 一些东西,比如SQLiteDatabase.insert(...),你会得到“新插入行的行 ID,如果发生错误,则返回 -1”。 -
@MisterSquonk 这是我的 DatabaseHelper 类的一个实例。
-
@Bombastic:没有看到你的帮助类和
executeSQLQuery(...)方法的代码,这是不可能的。不过 Philipp 可能是正确的 -SELECT操作不会返回最后插入的行 ID,您需要在实际插入内容时检查它。 -
@Bombastic:
dbHelper.executeSQLQuery(query)返回一个Cursor的实例,因此你正在做Integer.parseInt(Cursor.toString())这永远不会工作。假设表的id列是long和AUTOINCREMENT,那么FloatingCoder 的方法将起作用,尽管您仍然会从查询中得到Cursor,并且您必须使用moveFirst()才能能够访问 id 的值。