赞
踩
结果集(DataShareResultSet) 可提供访问由查询数据库生成的结果集的相关方法,根据提供的行数,查询相应的值,也可查询指定数据类型的值。
说明:
本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口为系统接口。
本模块接口仅可在Stage模型下使用。
import DataShareResultSet from '@ohos.data.DataShareResultSet';
需要通过调用query接口获取DataShareResultSet对象。
- import dataShare from '@ohos.data.dataShare';
- import dataSharePredicates from '@ohos.data.dataSharePredicates'
- import { BusinessError } from '@ohos.base'
- import UIAbility from '@ohos.app.ability.UIAbility'
-
- let dataShareHelper: dataShare.DataShareHelper | undefined = undefined;
- let uri = ("datashare:///com.samples.datasharetest.DataShare");
- let context = getContext(UIAbility);
- dataShare.createDataShareHelper(context, uri, (err, data) => {
- if (err != undefined) {
- console.error("createDataShareHelper fail, error message : " + err);
- } else {
- console.info("createDataShareHelper end, data : " + data);
- dataShareHelper = data;
- }
- });
-
- let columns = ["*"];
- let da = new dataSharePredicates.DataSharePredicates();
- let resultSet: DataShareResultSet | undefined = undefined;
- da.equalTo("name", "ZhangSan");
- if (dataShareHelper != undefined) {
- (dataShareHelper as dataShare.DataShareHelper).query(uri, da, columns).then((data: DataShareResultSet) => {
- console.info("query end, data : " + data);
- resultSet = data;
- }).catch((err: BusinessError) => {
- console.error("query fail, error message : " + err);
- });
- }

提供通过查询数据库生成的结果集的相关访问方法。
列或键名称作为字符串数组返回,其中字符串的顺序与结果集中的列或键的顺序相同。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
columnNames | 数组<字符串> | 是 | 结果集中所有列的名称。 |
columnCount | 数 | 是 | 结果集中的列数。 |
rowCount | 数 | 是 | 结果集中的行数。 |
isClosed | 布尔 | 是 | 标识当前结果集是否关闭。 |
goToFirstRow(): boolean
转到结果集的第一行。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
返回值:
类型 | 说明 |
---|---|
布尔 | 如果成功移动结果集,则为true;否则返回false。 |
示例:
- // resultSet需依照本页的使用说明进行创建。
- if (resultSet != undefined) {
- let isGoToFirstRow = (resultSet as DataShareResultSet).goToFirstRow();
- console.info('resultSet.goToFirstRow: ' + isGoToFirstRow);
- }
goToLastRow(): boolean
转到结果集的最后一行。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
返回值:
类型 | 说明 |
---|---|
布尔 | 如果成功移动结果集,则为true;否则返回false。 |
示例:
- if (resultSet != undefined) {
- let isGoToLastRow = (resultSet as DataShareResultSet).goToLastRow();
- console.info('resultSet.goToLastRow: ' + isGoToLastRow);
- }
goToNextRow(): boolean
转到结果集的下一行。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
返回值:
类型 | 说明 |
---|---|
布尔 | 如果成功移动结果集,则为true;否则返回false。 |
示例:
- if (resultSet != undefined) {
- let isGoToNextRow = (resultSet as DataShareResultSet).goToNextRow();
- console.info('resultSet.goToNextRow: ' + isGoToNextRow);
- }
goToPreviousRow(): boolean
转到结果集的上一行。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
返回值:
类型 | 说明 |
---|---|
boolean | 如果成功移动结果集,则为true;否则返回false。 |
示例:
- if (resultSet != undefined) {
- let isGoToPreviousRow = (resultSet as DataShareResultSet).goToPreviousRow();
- console.info('resultSet.goToPreviousRow: ' + isGoToPreviousRow);
- }
goTo(offset: number): boolean
相对于当前位置向前或向后移动指定行数。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
offset | number | 是 | 表示相对于当前位置的偏移量。offset为负值表示向前偏移,正值则表示向后偏移。 |
返回值:
类型 | 说明 |
---|---|
boolean | 如果成功移动结果集,则为true;否则返回false。 |
示例:
- let goToNum = 1;
- if (resultSet != undefined) {
- let isGoTo = (resultSet as DataShareResultSet).goTo(goToNum);
- console.info('resultSet.goTo: ' + isGoTo);
- }
goToRow(position: number): boolean
转到结果集的指定行。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
position | number | 是 | 表示要移动到的指定位置。 |
返回值:
类型 | 说明 |
---|---|
boolean | 如果成功移动结果集,则为true;否则返回false。 |
示例:
- let goToRowNum = 2;
- if (resultSet != undefined) {
- let isGoToRow = (resultSet as DataShareResultSet).goToRow(goToRowNum);
- console.info('resultSet.goToRow: ' + isGoToRow);
- }
getBlob(columnIndex: number): Uint8Array
以字节数组的形式获取当前行中指定列的值。
如果当前行中指定的列或键的值为空,或者指定的列或键不是Blob类型,则使用方需要确定是否抛出此异常。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
columnIndex | 数 | 是 | 指定的列索引,从0开始。 |
返回值:
类型 | 说明 |
---|---|
Uint8Array | 以字节数组的形式返回指定列的值。 |
示例:
- let columnIndex = 1;
- if (resultSet != undefined) {
- let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow();
- let getBlob = (resultSet as DataShareResultSet).getBlob(columnIndex);
- console.info('resultSet.getBlob: ' + getBlob);
- }
getString(columnIndex: number): string
以字符串形式获取当前行中指定列的值。
如果当前行中指定的列或键的值为空,或者指定的列或键不是string类型,则使用方需要确定是否抛出此异常。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
columnIndex | 数 | 是 | 指定的列索引,从0开始。 |
返回值:
类型 | 说明 |
---|---|
字符串 | 以字符串形式返回指定列的值。 |
示例:
- let columnIndex = 1;
- if (resultSet != undefined) {
- let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow();
- let getString = (resultSet as DataShareResultSet).getString(columnIndex);
- console.info('resultSet.getString: ' + getString);
- }
getLong(columnIndex: number): number
以长整数值形式获取当前行中指定列的值。
如果当前行中指定的列或键的值为空,或者指定的列或键不是long类型,则使用方需要确定是否抛出此异常。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
columnIndex | 数 | 是 | 指定的列索引,从0开始。 |
返回值:
类型 | 说明 |
---|---|
数 | 以长整数值形式返回指定列的值。 |
示例:
- let columnIndex = 1;
- if (resultSet != undefined) {
- let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow();
- let getLong = (resultSet as DataShareResultSet).getLong(columnIndex);
- console.info('resultSet.getLong: ' + getLong);
- }
getDouble(columnIndex: number): number
以值类型为双浮点数形式获取当前行中指定列的值。
如果当前行中指定的列或键的值为空,或者指定的列或键不是double类型,则使用方需要确定是否抛出此异常。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
columnIndex | number | 是 | 指定的列索引,从0开始。 |
返回值:
类型 | 说明 |
---|---|
number | 值类型为双浮点数形式返回指定列的值。 |
示例:
- let columnIndex = 1;
- if (resultSet != undefined) {
- let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow();
- let getDouble = (resultSet as DataShareResultSet).getDouble(columnIndex);
- console.info('resultSet.getDouble: ' + getDouble);
- }
close(): void
关闭结果集。
对结果集调用此方法将释放其所有资源并使其无效。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
示例:
- if (resultSet != undefined) {
- (resultSet as DataShareResultSet).close();
- }
getColumnIndex(columnName: string): number
根据指定的列名获取列索引。
列名作为输入参数传递。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
columnName | string | 是 | 表示结果集中指定列的名称。 |
返回值:
类型 | 说明 |
---|---|
number | 返回指定列的索引。 |
示例:
- let ColumnName = "name";
- if (resultSet != undefined) {
- let getColumnIndex = (resultSet as DataShareResultSet).getColumnIndex(ColumnName);
- console.info('resultSet.getColumnIndex: ' + getColumnIndex);
- }
getColumnName(columnIndex: number): string
根据指定的列索引获取列名。
列索引作为输入参数传递。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
columnIndex | number | 是 | 表示结果集中指定列的索引。 |
返回值:
类型 | 说明 |
---|---|
string | 返回指定列的名称。 |
示例:
- let columnIndex = 1;
- if (resultSet != undefined) {
- let getColumnName = (resultSet as DataShareResultSet).getColumnName(columnIndex);
- console.info('resultSet.getColumnName: ' + getColumnName);
- }
getDataType(columnIndex: number): DataType
指定列索引获取该列的数据类型。
如果当前行中指定的列或键的值为空,或者指定的列或键不是DataType类型,则使用方需要确定是否抛出此异常。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
columnIndex | 数 | 是 | 表示结果集中指定列的索引。 |
返回值:
类型 | 说明 |
---|---|
DataType | 返回指定列的类型。 |
示例:
- let columnIndex = 1;
- if (resultSet != undefined) {
- let getDataType = (resultSet as DataShareResultSet).getDataType(columnIndex);
- console.info('resultSet.getDataType: ' + getDataType);
- }
数据类型枚举。
系统能力: SystemCapability.DistributedDataManager.DataShare.Core
名称 | 值 | 说明 |
---|---|---|
TYPE_NULL | 0 | 表示值类型为空。 |
TYPE_LONG | 1 | 表示值类型为长整数值。 |
TYPE_DOUBLE | 2 | 表示值类型为双浮点数。 |
TYPE_STRING | 3 | 表示值类型为字符串。 |
TYPE_BLOB | 4 | 表示值类型为字节数组。 |
有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。
这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!
获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
HarmonOS基础技能
有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。
获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
OpenHarmony北向、南向开发环境搭建
获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料
总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。