使用索引和游标结合怎么添加数据

使用索引和游标结合怎么添加数据

我这样写为啥不行 是因为没有这个方法cursor.put()还是我写错了?

<!DOCTYPE html>

<html lang="en">


<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

</head>


<body>

<script>

//数据库

var dba = indexedDB.open("ZYC", 3);


dba.onsuccess = function () {

console.log(1);

}

dba.onupgradeneeded = function () {

// console.log("版本升级了");

var tbl = dba.result;

// console.log(tbl)

// tbl.createObjectStore("test3",{autoIncrement:true});

var index = tbl.createObjectStore("tests", { keyPath: "id" });

index.createIndex("index", "name", { unique: true });

}

var json = [{

"id": 1001,

"name": "zyc1",

"age": 18

}, {

"id": 1002,

"name": "zyc2",

"age": 18

}, {

"id": 1003,

"name": "zyc3",

"age": 18

}, {

"id": 1004,

"name": "zyc4",

"age": 18

}]


setTimeout(function () {

//找到数据库

var db = dba.result;

//找到表

var transcation = db.transaction("tests", "readwrite");

var store = transcation.objectStore("tests");

var requestNode = store.openCursor(IDBKeyRange.upperBound(1004));

// for(var i=0;i<json.length;i++){

//     store.add(json[i]);


// }

requestNode.onsuccess = function () {

var cursor = requestNode.result;

console.log(cursor);

//添加数据

cursor.put({

"id": 1001,

"name": "zyc1",

"age": 18

}).onsuccess=function(){

console.log("添加成功");

}

if (cursor) {

if (cursor.value.name == "zyc1111") {

//更新

// cursor.update({

//     "id": 1001,

//     "name": "zyc1111",

//     "age": 18

// });


//删除

// cursor.delete().onsuccess=function(){

//     console.log("删除成功");

// }


}

console.log(cursor.value);

cursor.continue();

}

};

}, 3000)

</script>

</body>


</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕慕子 2020-07-26 18:09:34

同学你好,游标和索引的结合目的就是为了更方便的查找数据,进行更新或删除操作,不可以使用游标和索引添加新数据。

如果想要添加数据,只能使用 IDBObjectStore 对象的add和put方法添加数据。示例:

http://img1.sycdn.imooc.com//climg/5f1d564b099c0fe603040221.jpg

祝学习愉快~

好帮手慕慕子 2020-07-26 11:51:20

同学你好,没有cursor.put这个方法。

更新数据时,书写有误,没有name值为zyc1111的数据,可以调整只为zyc1测试下结果

http://img1.sycdn.imooc.com//climg/5f1cfd5d09f991f706030444.jpg

测试结果如下:

http://img1.sycdn.imooc.com//climg/5f1cfd8e098ff9e615150423.jpg

HTML5存储实际中应用较少,同学简单了解下就可以了

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕标5156652 #1
    你这也没有回答我的问题啊 我的问题是在使用索引和游标时 有没有插入数据的方法 不是问你有没有更新数据
    2020-07-26 15:43:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师