#放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】23.【端侧工程】云数据库查询我的病虫害历史记录

鸿花粉H
发布于 2025-6-8 14:54
浏览
0收藏

通过cloudDatabase.DatabaseZone.query方法查询云数据库中满足条件的数据记录。

打开MyPestPage.ets文件

1.定义存储区、查询条件变量

agDBZone:cloudDatabase.DatabaseZone | undefined=undefined; // 云数据库存储区
  condition:cloudDatabase.DatabaseQuery<cloudDatabase.DatabaseObject> | undefined=undefined; // 查询条件

2.初始化

aboutToAppear(): void {
    // 初始化云数据库
    this.agDBZone = cloudDatabase.zone('NMSS');
    // 先查询首选项中的用户ID,用户手机号登录之后
    this.getMyPest('18866668888');
  }

3.获取我的病虫害诊断历史记录

/**
   * 获取用户诊断历史记录
   * @param userId 用户ID
   */
  async getMyPest(userId:string):Promise<void>{
    this.condition=new cloudDatabase.DatabaseQuery(Pest);
    this.condition.equalTo('UserId',userId).orderByDesc('UpdateDate');
    this.agDBZone?.query(this.condition)
      .then(result =>{
        let ps:Pest[] =result as Pest[];
        ps.forEach((item:Pest)=>{
          let pest:Pest =item as Pest;
          let model:PestModel =new PestModel();
          model.ID=pest.ID;
          model.AGID=pest.AGID;
          model.Type=pest.Type;
          model.ImgUri=pest.Img;
          model.PestName=pest.PestName;
          model.PestCtrl=pest.PestCtrl;
          this.myPests.push(model);
        });
      })
      .catch((err:BusinessError)=>{
        // 无任何操作
      })
  }

注意:数据记录的唯一性,根据当前登录的用户ID(手机号)。


收藏
回复
举报
回复
    相关推荐