繁体   English   中英

如何在Android中使用Realm数据库更新行?

[英]How to Update row using realm database in android?

这是我的代码

if (userDetailRealmModel.getuID() != i) {
      userDetailRealmModel.setUser_id(userDetailModelArrayList.get(i).getUser_id());
      userDetailRealmModel.setFirstname(userDetailModelArrayList.get(i).getFirstname());
      userDetailRealmModel.setLastname(userDetailModelArrayList.get(i).getLastname());
      userDetailRealmModel.setEmail(userDetailModelArrayList.get(i).getEmail());
      userDetailRealmModel.setPhone_no(userDetailModelArrayList.get(i).getPhone_no());
      userDetailRealmModel.setLatitude(userDetailModelArrayList.get(i).getLatitude());
      userDetailRealmModel.setLongitude(userDetailModelArrayList.get(i).getLongitude());
      userDetailRealmModel.setIs_private(userDetailModelArrayList.get(i).getIs_private());
      userDetailRealmModel.setCreation_datetime(userDetailModelArrayList.get(i).getCreation_datetime());
      userDetailRealmModel.setUpdate_datetime(userDetailModelArrayList.get(i).getUpdate_datetime());

      realm.copyToRealmOrUpdate(userDetailRealmModel);
      //userDetailRealmModelArray.add(userDetailRealmModel);  
    }

我想更新我的数据库,但是无法正常工作

如果您有包含userDetailModelArrayList列表的RealmObjects ,则可以使用以下命令更新数据库

    if (userDetailRealmModel.getuID() != i){
       realm.beginTransaction();
       realm.copyToRealmOrUpdate(userDetailModelArrayList.get(i));
       realm.commitTransaction();
    }

它将使用对象的主键更新您的领域数据库行。

如果列表中没有领域对象,则必须按如下所示手动更新它:

   if (userDetailRealmModel.getuID() != i) {
          realm.beginTransaction();
          userDetailRealmModel.setUser_id(userDetailModelArrayList.get(i).getUser_id());
          userDetailRealmModel.setFirstname(userDetailModelArrayList.get(i).getFirstname());
          userDetailRealmModel.setLastname(userDetailModelArrayList.get(i).getLastname());
          userDetailRealmModel.setEmail(userDetailModelArrayList.get(i).getEmail());
          userDetailRealmModel.setPhone_no(userDetailModelArrayList.get(i).getPhone_no());
          userDetailRealmModel.setLatitude(userDetailModelArrayList.get(i).getLatitude());
          userDetailRealmModel.setLongitude(userDetailModelArrayList.get(i).getLongitude());
          userDetailRealmModel.setIs_private(userDetailModelArrayList.get(i).getIs_private());
          userDetailRealmModel.setCreation_datetime(userDetailModelArrayList.get(i).getCreation_datetime());
          userDetailRealmModel.setUpdate_datetime(userDetailModelArrayList.get(i).getUpdate_datetime());
          realm.copyToRealmOrUpdate(userDetailRealmModel);
          realm.commitTransaction(); 
        }

尝试这个

if (userDetailRealmModel.getuID() != i) {
      userDetailRealmModel.setUser_id(userDetailModelArrayList.get(i).getUser_id());
      userDetailRealmModel.setFirstname(userDetailModelArrayList.get(i).getFirstname());
      userDetailRealmModel.setLastname(userDetailModelArrayList.get(i).getLastname());
      userDetailRealmModel.setEmail(userDetailModelArrayList.get(i).getEmail());
      userDetailRealmModel.setPhone_no(userDetailModelArrayList.get(i).getPhone_no());
      userDetailRealmModel.setLatitude(userDetailModelArrayList.get(i).getLatitude());
      userDetailRealmModel.setLongitude(userDetailModelArrayList.get(i).getLongitude());
      userDetailRealmModel.setIs_private(userDetailModelArrayList.get(i).getIs_private());
      userDetailRealmModel.setCreation_datetime(userDetailModelArrayList.get(i).getCreation_datetime());
      userDetailRealmModel.setUpdate_datetime(userDetailModelArrayList.get(i).getUpdate_datetime());

      realm.beginTransaction();
           realm.copyToRealmOrUpdate(userDetailRealmModel); //pass your object
           realm.commitTransaction(); 
    }

更新

请卸载您的应用程序,然后再次清理build-> rebuild and install。

检查这个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM