HarmonyOS鸿蒙Next中端侧操作数据库不成功,一个最基本的代码,我之前写过很多次都可以,为什么现在就不行了呢?

HarmonyOS鸿蒙Next中端侧操作数据库不成功,一个最基本的代码,我之前写过很多次都可以,为什么现在就不行了呢?

import { t_user } from '../model/t_user'
import t_user_schema from '../../resources/base/profile/t_user_schema.json'
import cloud from '@hw-agconnect/cloud';

@Entry
@Component
struct Index {
  @State user_array: t_user[] = []

  private getDatabase() {
    return cloud.database({
      zoneName: 'APPDATA',
      objectTypeInfo: t_user_schema
    });
  }

  async add_data() {
    try {
      console.log('message', '操作数据库')
      const new_record = new t_user();
      new_record.userId = 'adc';
      new_record.name = `用户1`;
      new_record.age = 18;
      try {
        await this.getDatabase().collection(t_user).upsert(new_record);
      } catch (e) {
        console.log('message', '操作数据库失败' + JSON.stringify(e))
      }

      console.log('添加成功', new_record);
    } catch (e) {
      console.error('添加失败', JSON.stringify(e, Object.getOwnPropertyNames(e)));
    }
  }

  async get_data() {
    try {
      this.user_array = await this.getDatabase().collection(t_user).query().get();
      console.log('查询到数据:', this.user_array.length);
    } catch (e) {
      console.error('查询失败', JSON.stringify(e));
    }
  }

  build() {
    Column({ space: 20 }) {
      Button('添加数据')
        .width('90%')
        .onClick(() => this.add_data())

      Button('查询数据')
        .width('90%')
        .onClick(() => this.get_data())

      List() {
        ForEach(this.user_array, (item: t_user) => {
          ListItem() {
            Column() {
              Text(`ID: ${item.userId}`).fontSize(14)
              Text(`姓名: ${item.name}`).fontSize(16)
              Text(`年龄: ${item.age}`).fontColor('#666')
            }
            .padding(10)
          }
        })
      }
      .height('100%')
      .width('100%')
    }
    .padding(20)
  }
}
2 回复

在HarmonyOS鸿蒙Next中,端侧操作数据库不成功可能有多种原因。首先,检查你的代码是否与当前版本的HarmonyOS兼容,因为不同版本可能会有API的变动或更新。其次,确认你的数据库文件路径和权限设置是否正确,确保应用有权限访问和操作数据库。此外,检查数据库是否已正确初始化,以及表结构是否与代码中的操作匹配。如果使用了异步操作,确保回调函数正确处理了数据库操作的结果。最后,查看日志输出,通常会有错误信息提示具体问题所在。如果以上都确认无误,可能是系统或环境问题,建议重启设备或清理缓存后重试。

更多关于HarmonyOS鸿蒙Next中端侧操作数据库不成功,一个最基本的代码,我之前写过很多次都可以,为什么现在就不行了呢?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,端侧操作数据库失败可能由以下原因引起:

  1. 数据库权限问题,确保应用已获取必要的存储权限;
  2. 数据库路径或名称错误,检查路径和名称是否正确;
  3. 数据库版本不兼容,确认使用的数据库版本与系统兼容;
  4. 代码逻辑错误,重新审查代码,确保没有遗漏或错误。

建议检查这些方面,逐步排查问题。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!