首页 > 解决方案 > 如何更新房间数据库中的数据?

问题描述

我正在尝试更新房间数据库中表的数据,但该项目没有更新。代码为实体:

 @Entity(tableName = "modes")
public class Mode extends BaseObservable implements Serializable {
    @PrimaryKey(autoGenerate = true)
    public int id;
    @ColumnInfo(name = "Mode_Name")
    private String ModeName;
      @ColumnInfo(name = "Mode_Brightness_ProgressBar")
    private Integer ModeBrightnessProgressBar;

道:

    @Query("UPDATE modes SET Mode_Brightness_ProgressBar = :brightnessProgress  WHERE id = :id")
    fun updateBrightness(id: Int, brightnessProgress: Int) { 
    }

视图模型:

 fun updateBrightness(id: Int, brightness: Int) {
    mRepository.updateBrightness(id, brightness)
}

存储库:

 fun updateBrightness(id: Int, brightness: Int) {
    UpdateCheckInAsyncTask(modeDao, id, brightness).execute()
}


  private class UpdateCheckInAsyncTask internal constructor(
        private val dao: DaoAccess,
        Id: Int,
        Brightness: Int
    ) :
        AsyncTask<Void?, Void?, Void?>() {

        private val mId: Int = Id
        private val mbrightness: Int = Brightness

        override fun doInBackground(vararg params: Void?): Void? {
            val entity: Mode = dao.getMode(mId)
            dao.updateBrightness(mId, mbrightness)
            return null
        }
    }

分段:

 GlobalScope.launch(Dispatchers.IO) {
                activityViewModel.updateBrightness(id, currentBrightnessForMode)
    }.invokeOnCompletion {
        GlobalScope.launch(Dispatchers.Main)
        {
            Log.d("DB_CLIENT", "Data updated")
        }
    }

任何帮助都感激不尽。谢谢

标签: androiddatabaseandroid-room

解决方案


推荐阅读