我有一个应该更新表中行的方法 但它只能工作一次,然后当我想要更新第二行或其他行时,它不起作用......
这里是更新方法:
@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);";
答案 0 :(得分:0)
我发现了问题......我的桌子上有两个Id 其中一个只是唯一的Id而另一个是来自另一个表的设备的id并且用于更新我需要设备ID但是我使用了另一个id导致问题的原因