可能是重复问题:
获取插入后生成的id
我想在我的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吗?谢谢!
SELECT
语句会插入任何内容?如果您使用SQLiteDatabase.insert(...)
实际上插入了某些内容,您将返回“新插入行的行ID,如果发生错误则为-1”。 - Philipp ReichartexecuteSQLQuery(...)
方法的代码,很难说。但 Philipp 可能是正确的 -SELECT
操作不会返回最后插入的行 ID,并且您需要在实际插入内容时进行检查。 - SquonkdbHelper.executeSQLQuery(query)
返回一个Cursor
实例,因此你正在执行Integer.parseInt(Cursor.toString())
,这永远不会起作用。假设你的表的id
列是带有AUTOINCREMENT
的long
类型,那么 FloatingCoder 的方法将起作用,尽管你仍然会从查询中得到一个Cursor
,并且你必须使用moveFirst()
来访问 id 的值。 - Squonk