1# @ohos.data.dataShareResultSet (数据共享结果集) 2 3**结果集(DataShareResultSet)** 可提供访问由查询数据库生成的结果集的相关方法,根据提供的行数,查询相应的值,也可查询指定数据类型的值。 4 5> **说明:** 6> 7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 9> 本模块接口为系统接口。 10> 11> 本模块接口仅可在Stage模型下使用。 12 13 14## 导入模块 15 16```ts 17import DataShareResultSet from '@ohos.data.DataShareResultSet'; 18``` 19 20## 使用说明 21 22需要通过调用[query](js-apis-data-dataShare.md#query)接口获取DataShareResultSet对象。 23 24```ts 25import dataShare from '@ohos.data.dataShare'; 26import dataSharePredicates from '@ohos.data.dataSharePredicates' 27import { BusinessError } from '@ohos.base' 28 29let dataShareHelper: dataShare.DataShareHelper | undefined = undefined; 30let uri = ("datashare:///com.samples.datasharetest.DataShare"); 31dataShare.createDataShareHelper(this.context, uri, (err, data) => { 32 if (err != undefined) { 33 console.error("createDataShareHelper fail, error message : " + err); 34 } else { 35 console.info("createDataShareHelper end, data : " + data); 36 dataShareHelper = data; 37 } 38}); 39 40let columns = ["*"]; 41let da = new dataSharePredicates.DataSharePredicates(); 42let resultSet: DataShareResultSet | undefined = undefined; 43da.equalTo("name", "ZhangSan"); 44if (dataShareHelper != undefined) { 45 (dataShareHelper as dataShare.DataShareHelper).query(uri, da, columns).then((data: DataShareResultSet) => { 46 console.info("query end, data : " + data); 47 resultSet = data; 48 }).catch((err: BusinessError) => { 49 console.error("query fail, error message : " + err); 50 }); 51} 52``` 53 54## DataShareResultSet 55提供通过查询数据库生成的结果集的相关访问方法。 56 57### 属性 58 59**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 60 61| 名称 | 类型 | 必填 | 说明 | 62| ----------- | ------------- | ---- | ------------------------ | 63| columnNames | Array<string> | 是 | 结果集中所有列的名称。 | 64| columnCount | number | 是 | 结果集中的列数。 | 65| rowCount | number | 是 | 结果集中的行数。 | 66| isClosed | boolean | 是 | 标识当前结果集是否关闭。 | 67 68### goToFirstRow 69 70goToFirstRow(): boolean 71 72转到结果集的第一行。 73 74**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 75 76**返回值:** 77 78| 类型 | 说明 | 79| :------ | --------------------------------------------- | 80| boolean | 如果成功移动结果集,则为true;否则返回false。 | 81 82**示例:** 83 84```ts 85if (resultSet != undefined) { 86 let isGoToFirstRow = (resultSet as DataShareResultSet).goToFirstRow(); 87 console.info('resultSet.goToFirstRow: ' + isGoToFirstRow); 88} 89``` 90 91### goToLastRow 92 93goToLastRow(): boolean 94 95转到结果集的最后一行。 96 97**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 98 99**返回值:** 100 101| 类型 | 说明 | 102| -------- | -------- | 103| boolean | 如果成功移动结果集,则为true;否则返回false。 | 104 105**示例:** 106 107```ts 108if (resultSet != undefined) { 109 let isGoToLastRow = (resultSet as DataShareResultSet).goToLastRow(); 110 console.info('resultSet.goToLastRow: ' + isGoToLastRow); 111} 112``` 113 114### goToNextRow 115 116goToNextRow(): boolean 117 118转到结果集的下一行。 119 120**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 121 122**返回值:** 123 124| 类型 | 说明 | 125| ------- | --------------------------------------------- | 126| boolean | 如果成功移动结果集,则为true;否则返回false。 | 127 128**示例:** 129 130```ts 131if (resultSet != undefined) { 132 let isGoToNextRow = (resultSet as DataShareResultSet).goToNextRow(); 133 console.info('resultSet.goToNextRow: ' + isGoToNextRow); 134} 135``` 136 137### goToPreviousRow 138 139goToPreviousRow(): boolean 140 141转到结果集的上一行。 142 143**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 144 145**返回值:** 146 147| 类型 | 说明 | 148| ------- | --------------------------------------------- | 149| boolean | 如果成功移动结果集,则为true;否则返回false。 | 150 151**示例:** 152 153```ts 154if (resultSet != undefined) { 155 let isGoToPreviousRow = (resultSet as DataShareResultSet).goToPreviousRow(); 156 console.info('resultSet.goToPreviousRow: ' + isGoToPreviousRow); 157} 158``` 159 160### goTo 161 162goTo(offset:number): boolean 163 164相对于当前位置向前或向后移动指定行数。 165 166**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 167 168**参数:** 169 170| **参数名** | **类型** | **必填** | 说明 | 171| ---------- | -------- | -------- | ------------------------------------------------------------ | 172| offset | number | 是 | 表示相对于当前位置的偏移量。offset为负值表示向前偏移,正值则表示向后偏移。 | 173 174**返回值:** 175 176| 类型 | 说明 | 177| ------- | --------------------------------------------- | 178| boolean | 如果成功移动结果集,则为true;否则返回false。 | 179 180**示例:** 181 182```ts 183let goToNum = 1; 184if (resultSet != undefined) { 185 let isGoTo = (resultSet as DataShareResultSet).goTo(goToNum); 186 console.info('resultSet.goTo: ' + isGoTo); 187} 188``` 189 190### goToRow 191 192goToRow(position: number): boolean 193 194转到结果集的指定行。 195 196**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 197 198**参数:** 199 200| **参数名** | **类型** | **必填** | 说明 | 201| ---------- | -------- | -------- | ------------------------ | 202| position | number | 是 | 表示要移动到的指定位置。 | 203 204**返回值:** 205 206| 类型 | 说明 | 207| ------- | --------------------------------------------- | 208| boolean | 如果成功移动结果集,则为true;否则返回false。 | 209 210**示例:** 211 212```ts 213let goToRowNum = 2; 214if (resultSet != undefined) { 215 let isGoToRow = (resultSet as DataShareResultSet).goToRow(goToRowNum); 216 console.info('resultSet.goToRow: ' + isGoToRow); 217} 218``` 219 220### getBlob 221 222getBlob(columnIndex: number): Uint8Array 223 224以字节数组的形式获取当前行中指定列的值。 225 226**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 227 228**参数:** 229 230| **参数名** | **类型** | **必填** | 说明 | 231| ----------- | -------- | -------- | ----------------------- | 232| columnIndex | number | 是 | 指定的列索引,从0开始。 | 233 234**返回值:** 235 236| 类型 | 说明 | 237| ---------- | -------------------------------- | 238| Uint8Array | 以字节数组的形式返回指定列的值。 | 239 240**示例:** 241 242```ts 243let columnIndex = 1; 244if (resultSet != undefined) { 245 let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow(); 246 let getBlob = (resultSet as DataShareResultSet).getBlob(columnIndex); 247 console.info('resultSet.getBlob: ' + getBlob); 248} 249``` 250 251### getString 252 253getString(columnIndex: number): string 254 255以字符串形式获取当前行中指定列的值。 256 257**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 258 259**参数:** 260 261| **参数名** | **类型** | **必填** | 说明 | 262| ----------- | -------- | -------- | ----------------------- | 263| columnIndex | number | 是 | 指定的列索引,从0开始。 | 264 265**返回值:** 266 267| 类型 | 说明 | 268| ------ | ---------------------------- | 269| string | 以字符串形式返回指定列的值。 | 270 271**示例:** 272 273```ts 274let columnIndex = 1; 275if (resultSet != undefined) { 276 let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow(); 277 let getString = (resultSet as DataShareResultSet).getString(columnIndex); 278 console.info('resultSet.getString: ' + getString); 279} 280``` 281 282### getLong 283 284getLong(columnIndex: number): number 285 286以长整数值形式获取当前行中指定列的值。 287 288**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 289 290**参数:** 291 292| **参数名** | **类型** | **必填** | 说明 | 293| ----------- | -------- | -------- | ----------------------- | 294| columnIndex | number | 是 | 指定的列索引,从0开始。 | 295 296**返回值:** 297 298| 类型 | 说明 | 299| ------ | -------------------------- | 300| number | 以长整数值形式返回指定列的值。 | 301 302**示例:** 303 304```ts 305let columnIndex = 1; 306if (resultSet != undefined) { 307 let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow(); 308 let getLong = (resultSet as DataShareResultSet).getLong(columnIndex); 309 console.info('resultSet.getLong: ' + getLong); 310} 311``` 312 313### getDouble 314 315getDouble(columnIndex: number): number 316 317以值类型为双浮点数形式获取当前行中指定列的值。 318 319**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 320 321**参数:** 322 323| **参数名** | **类型** | **必填** | 说明 | 324| ----------- | -------- | -------- | ----------------------- | 325| columnIndex | number | 是 | 指定的列索引,从0开始。 | 326 327**返回值:** 328 329| 类型 | 说明 | 330| ------ | ---------------------------- | 331| number | 值类型为双浮点数形式返回指定列的值。 | 332 333**示例:** 334 335```ts 336let columnIndex = 1; 337if (resultSet != undefined) { 338 let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow(); 339 let getDouble = (resultSet as DataShareResultSet).getDouble(columnIndex); 340 console.info('resultSet.getDouble: ' + getDouble); 341} 342``` 343 344### close 345 346close(): void 347 348关闭结果集。 349 350**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 351 352**示例:** 353 354```ts 355if (resultSet != undefined) { 356 (resultSet as DataShareResultSet).close(); 357} 358``` 359 360### getColumnIndex 361 362getColumnIndex(columnName: string): number 363 364根据指定的列名获取列索引。 365 366**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 367 368**参数:** 369 370| **参数名** | **类型** | **必填** | 说明 | 371| ---------- | -------- | -------- | -------------------------- | 372| columnName | string | 是 | 表示结果集中指定列的名称。 | 373 374**返回值:** 375 376| 类型 | 说明 | 377| ------ | ------------------ | 378| number | 返回指定列的索引。 | 379 380**示例:** 381 382```ts 383let ColumnName = "name"; 384if (resultSet != undefined) { 385 let getColumnIndex = (resultSet as DataShareResultSet).getColumnIndex(ColumnName); 386 console.info('resultSet.getColumnIndex: ' + getColumnIndex); 387} 388``` 389 390### getColumnName 391 392getColumnName(columnIndex: number): string 393 394根据指定的列索引获取列名。 395 396**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 397 398**参数:** 399 400| **参数名** | **类型** | **必填** | 说明 | 401| ----------- | -------- | -------- | -------------------------- | 402| columnIndex | number | 是 | 表示结果集中指定列的索引。 | 403 404**返回值:** 405 406| 类型 | 说明 | 407| ------ | ------------------ | 408| string | 返回指定列的名称。 | 409 410**示例:** 411 412```ts 413let columnIndex = 1; 414if (resultSet != undefined) { 415 let getColumnName = (resultSet as DataShareResultSet).getColumnName(columnIndex); 416 console.info('resultSet.getColumnName: ' + getColumnName); 417} 418``` 419 420### getDataType 421 422getDataType(columnIndex: number): DataType 423 424指定列索引获取该列的数据类型。 425 426**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 427 428**参数:** 429 430| **参数名** | **类型** | **必填** | 说明 | 431| ----------- | -------- | -------- | -------------------------- | 432| columnIndex | number | 是 | 表示结果集中指定列的索引。 | 433 434**返回值:** 435 436| 类型 | 说明 | 437| --------------------- | ------------------ | 438| [DataType](#datatype) | 返回指定列的类型。 | 439 440**示例:** 441 442```ts 443let columnIndex = 1; 444if (resultSet != undefined) { 445 let getDataType = (resultSet as DataShareResultSet).getDataType(columnIndex); 446 console.info('resultSet.getDataType: ' + getDataType); 447} 448``` 449 450## DataType 451 452数据类型枚举。 453 454**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 455 456| 名称 | 值 | 说明 | 457| ----------- | ------ | -------------------- | 458| TYPE_NULL | 0 | 表示值类型为空。 | 459| TYPE_LONG | 1 | 表示值类型为长整数值。 | 460| TYPE_DOUBLE | 2 | 表示值类型为双浮点数。 | 461| TYPE_STRING | 3 | 表示值类型为字符串。 | 462| TYPE_BLOB | 4 | 表示值类型为字节数组。 |