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