1. 媒介导读
在上集文章中,已经学习了如何创建数据库,如何建表,这集我们将如何通过数据库实现生存(添加)接洽人信息
- 鸿蒙Next开辟-通讯录app,创建数据库(三):https://blog.csdn.net/jky_yihuangxing/article/details/141207750
2. 开辟步骤
获取到RdbStore后,调用insert()接口插入数据
留意事项:RdbStore是在UIAbility里面初始化话,在其他页面利用RdbStore实例,则需要导出和导入,具体代码在上集中
- 在CreateContactsPage.ets 页面中,导入storeDb
- import { storeDb } from '../entryability/EntryAbility';
复制代码
- 构建ValuesBucket需要插入的字段
留意:要和建表的字段一一对应
- const valuesBucket: relationalStore.ValuesBucket = {
- 'ct_username': this.ct_username,
- 'ct_mobile': this.ct_mobile,
- 'ct_bg_color': getRandomColor()
- }
复制代码 insert(table: string, values: ValuesBucket, callback: AsyncCallback):void
向目标表中插入一行数据,利用callback异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。
参数:
参数名范例必填阐明tablestring是指定的目标表名。valuesValuesBucket是表示要插入到表中的数据行。callbackAsyncCallback是指定回调函数。如果操作成功,返回行ID;否则返回-1。 官方文档指南:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-data-relationalstore-V5#insert
- storeDb.insert('Contacts_Table', valuesBucket, (err: BusinessError, rowId: number) => {
- if (err) {
- console.error(`------------Failed to insert data. Code:${err.code}, message:${err.message}`);
- return
- }
- promptAction.showToast({
- message: '创建成功'
- })
- router.back({
- url: 'pages/Index',
- params: {
- result_code: 200
- }
- })
- })
复制代码 3. 具体代码实现全过程
CreateContactsPage.ets 新建接洽人页面
- import { promptAction, router } from '@kit.ArkUI';import { relationalStore } from '@kit.ArkData';import { BusinessError } from '@kit.BasicServicesKit';import { storeDb } from '../entryability/EntryAbility';
- const colors: Array<string> = ['#ff6161', '#ffb120', '#7484fc', '#00cee5']function getRandomColor():string { const randomIndex = Math.floor(Math.random() * colors.length); return colors[randomIndex];}@Entry@Componentstruct CreateContactsPage { @State ct_username: string = '' @State ct_mobile: string = '' build() { Column() { Row() { Image($r('app.media.img_back')).width(24) Text('新建接洽人') .padding({ left: 16 }) .fontSize(18) .fontWeight(500) } .width('100%') .padding({ left: 16 }) .onClick(() => { router.back() }) Column() { TextInput({ placeholder: '请输入接洽人姓名'}) .copyOption(CopyOptions.LocalDevice) .onChange((value) => { this.ct_username = value }) TextInput({ placeholder: '请输入手机号' }) .type(InputType.PhoneNumber) .margin({ top: 10 }) .onChange((value) => { this.ct_mobile = value }) Button('新建接洽人') .width('100%') .margin({ top: 30 }) .onClick(() => { if (this.ct_username == '' || this.ct_mobile == '') { promptAction.showToast({ message: '接洽人姓名或手机号不能为空' }) return } if (storeDb !== undefined) { const valuesBucket: relationalStore.ValuesBucket = {
- 'ct_username': this.ct_username,
- 'ct_mobile': this.ct_mobile,
- 'ct_bg_color': getRandomColor()
- }
- storeDb.insert('Contacts_Table', valuesBucket, (err: BusinessError, rowId: number) => {
- if (err) {
- console.error(`------------Failed to insert data. Code:${err.code}, message:${err.message}`);
- return
- }
- promptAction.showToast({
- message: '创建成功'
- })
- router.back({
- url: 'pages/Index',
- params: {
- result_code: 200
- }
- })
- })
- } else { console.error('------------', `Failed store is undefined`); } }) }.alignItems(HorizontalAlign.Start) .width('100%') .padding(20) .margin({ top: 50 }) } .height('100%') .width('100%') }}
复制代码 4. 运行结果
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |