sqlite更新最初只工作一次然后失败

时间:2017-12-08 09:53:34

标签: java android database sqlite

我有一个应该更新表中行的方法 但它只能工作一次,然后当我想要更新第二行或其他行时,它不起作用......

这里是更新方法:

@Override
public boolean updateRelayItemStatus(int deviceId, String itemDefaultName, int status) {
    LogClass.logD("start updating '"+itemDefaultName+"'");

    SQLiteDatabase sql = db.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(Database.R_STATUS, status);


    long responseId = sql.update(Database.TABLE_RELAYS, contentValues, Database.R_ID + " =? AND " + Database.R_DEFAULT_NAME + " =?", new String[]{String.valueOf(deviceId), itemDefaultName});

    sql.close();
    LogClass.logD("update relay row for '" + itemDefaultName + "' " +
            " -  '"+deviceId+"' " +
            " -  '"+status+"'  =======   " + (responseId > 0 ? "succeed" : "failed"));
    return responseId > 0;
}

这是表格:

private final String CREATE_RELAYS = "CREATE TABLE " + TABLE_RELAYS + "("
            + R_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + R_DEVICE_ID + " TEXT, "
            + R_DEFAULT_NAME + " TEXT,"
            + R_CUSTOM_NAME + " TEXT,"
            + R_ICON + " INTEGER,"
            + R_TIME + " INTEGER,"
            + R_STATUS + " INTEGER);";

1 个答案:

答案 0 :(得分:0)

我发现了问题......我的桌子上有两个Id 其中一个只是唯一的Id而另一个是来自另一个表的设备的id并且用于更新我需要设备ID但是我使用了另一个id导致问题的原因