Android SQLite - 获取 ID

标签 android sqlite

我正在尝试获取由以下插入创建的主键 (ID):

public void insert (int FK_Vistoria, int CodIrregularidade, int FK_Equipamento, int FK_SubArea) throws SQLException {
    String sql = "INSERT OR REPLACE INTO " + DATABASE_TABLE + " VALUES (?, ?, ?, ?);";
    SQLiteStatement statement = mDb.compileStatement(sql);
    mDb.beginTransaction();

    statement.bindLong(1, FK_Vistoria);
    statement.bindLong(2, FK_Equipamento);
    statement.bindLong(3, CodIrregularidade);
    statement.bindLong(4, FK_SubArea);

    statement.execute();

    mDb.setTransactionSuccessful();
    mDb.endTransaction();
}

我尝试使用这段代码来获取它:

int idIrregularidade = mDb.insert(idVistoria, idCriterio, idEquipamento, idArea);

有人可以帮忙吗?

最佳答案

SQLiteStatement.execute()方法返回 void 而不是插入的行 ID。

使用SQLiteStatement.executeInsert ()如果插入成功,返回 插入的最后一行的行 ID。 -1 否则

更改 insert 方法以在调用时获取行 ID:

public long insert (int FK_Vistoria,...){
   ....
   long insertedRowID= statement.executeInsert();
   ....
   return insertedRowID;
}

关于Android SQLite - 获取 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34678570/

相关文章:

android - 大通知图标背景

android - 我必须向布局添加什么才能隐藏标题栏?

android - 以编程方式关闭android :windowActionBarOverlay style from action bar

php - 无法写入只读 SQLite 数据库文件

android - 管理 Android SQLite 数据库的工具

Java/Android,新的文件语法

android - 尝试在 Eclipse 上更新到 Android SDK 2.3 导致 adb 丢失

Android 使用 contentresolver.bulkInsert() : too slow 在 "content://sms/"中插入多条短信

android - Android 上用于 RSS 的 SQLite 或内部存储?

java - 如何从 ResultSet 填充 JTable?