帖子
帖子
用户
博客
课程
显示全部楼层
3
帖子
0
勋章
19
Y币

[插件使用] db模块使用问题请教

[复制链接]
发表于 2019-11-20 13:55:12
本帖最后由 gathon 于 2019-11-20 13:57 编辑

各位大神好!最近在使用db模块时,感觉有点困惑,请大神指点:
在网上找到了creat 和 add 的教程,

creat命令如下:
sql:"CREATE TABLE bleList(Id int, lightNum varchar(255), sta varchar(255))"

插入命令如下:
sql:'INSERT INTO bleList(Id,lightNum,sta) VALUES(1,"light0","0")'

读取命令如下:
sql: 'SELECT * FROM bleList'

关于数据操作的,只找到这几个,有几个问题请大神帮忙解答一下:
1、想删除一条数据的话,该怎么操作?
2、怎么读取其中某一条数据,是否可以像读取数组的数据一样,读取arr处的一个值,这个db数据不知道怎么操作了;
3、添加数据的时候,实际测试,同样一条数据,可以无限次添加,是否可以向数组一样,可以写入和修改某一条数据?
以上,感谢各位帮忙解惑!

20
帖子
0
勋章
6613
Y币
  1. <!doctype html>
  2. <html>
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
  6.     <meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
  7.     <title>底部导航</title>
  8.     <link rel="stylesheet" type="text/css" href="./css/api.css"/>
  9.     <link rel="stylesheet" type="text/css" href="./css/style.css"/>
  10.     <style>
  11.       button{
  12.         width: 100%; height: 60px; color: #fff; background-color: green; margin-top: 10px;
  13.       }
  14.       table{width: 100%;}
  15.       table tr td{width: 20%; height: 20px; line-height: 20px; text-align: center;}
  16.       .insert{ width: 100%; height: 60px; background-color: green;line-height: 60px; margin-top: 10px;}
  17.       .insert input{ width: 23%; height: 55px; text-align: center; color: #fff; background-color: green; border: 1px solid #33cc2a;}
  18.       .wid{ width: 100%; height: 50px;  color: green; border: 1px solid green; margin-top: 10px; }

  19.     </style>
  20. </head>
  21. <body>
  22.   <button onclick="newWin()" type="button" name="button">读文件</button>

  23.   <button onclick="createDB()" type="button" name="button">创建表</button>
  24.   <button onclick="deleteDB()" type="button" name="button">删除表</button>
  25.   <div class="insert">
  26.     <input type="text" id="LastName" placeholder="LastName">
  27.     <input type="text" id="FirstName" placeholder="FirstName">
  28.     <input type="text" id="Address" placeholder="Address">
  29.     <input type="text" id="City" placeholder="City">
  30.   </div>
  31.   <button onclick="insertDB()" type="button" name="button">插入数据</button>
  32.   <input class="wid" type="text" id="wid" placeholder="请输入要删除的id">
  33.   <button onclick="deleteData()" type="button" name="button">删除数据</button>
  34.   <button onclick="selectDB()" type="button" name="button">查询数据</button>
  35.   <table>
  36.     <th>id</th><th>lname</th><th>fname</th><th>add</th><th>city</th>
  37.     <tbody id="table">
  38.     </tbody>
  39.   </table>
  40. </body>
  41. </html>
  42. <script type="text/javascript" src="script/api.js"></script>
  43. <script type="text/javascript">
  44. var id = 0;
  45.     apiready = function () {
  46.         initDB();
  47.     }
  48.     function initDB(){
  49.       var db = api.require('db');
  50.       db.openDatabase({
  51.           name: 'testDB'
  52.       }, function(ret, err) {
  53.           if (ret.status) {
  54.               console.log(JSON.stringify(ret) + '数据库开启');
  55.           } else {
  56.               alert(JSON.stringify(err) + '数据库开启失败');
  57.           }
  58.       });
  59.     }

  60.     function newWin(){
  61.       api.openWin({
  62.           name: 'db',
  63.           url: 'db.html',
  64.           pageParam: {
  65.               name: 'test'
  66.           }
  67.       });

  68.     }

  69.     //创建数据表
  70.     function createDB(){
  71.       var db = api.require('db');
  72.       db.executeSql({
  73.           name: 'testDB',
  74.           sql: 'CREATE TABLE Persons9(Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255))'
  75.       }, function(ret, err) {
  76.           if (ret.status) {
  77.               console.log(JSON.stringify(ret) + '数据表创建');
  78.           } else {
  79.               console.log(JSON.stringify(err) + '数据表创建失败');
  80.           }
  81.       });
  82.     }

  83.     //删除表信息
  84.     function deleteDB(){
  85.       var db = api.require('db');
  86.       db.executeSql({
  87.           name: 'testDB',
  88.           sql: 'DROP TABLE Persons9'
  89.       }, function(ret, err) {
  90.           if (ret.status) {
  91.               console.log(JSON.stringify(ret) + '删除表成功');
  92.           } else {
  93.               console.log(JSON.stringify(err) + '删除表失败');
  94.           }
  95.       });
  96.     }

  97.     //判断id是否为空
  98.     function deleteData(){
  99.       var wid = $api.dom('#wid').value;
  100.       if (wid) {
  101.         deleteData1(wid);
  102.       } else {
  103.         wid = id ;
  104.         deleteData1(wid);
  105.       }
  106.     }
  107.     //删除数据
  108.     function deleteData1(wid){
  109.       var db = api.require('db');
  110.       db.executeSql({
  111.           name: 'testDB',
  112.           sql: 'DELETE FROM Persons9 WHERE Id_P = ' + wid
  113.       }, function(ret, err) {
  114.           if (ret.status) {
  115.               console.log(JSON.stringify(ret) + '删除数据成功');
  116.               selectDB();
  117.               $api.dom('#wid').value = '';
  118.               if (id<0) {
  119.                 id = 0;
  120.               } else {
  121.                 id = id - 1;
  122.               }
  123.           } else {
  124.               console.log(JSON.stringify(err) + '删除数据失败');
  125.           }
  126.       });
  127.     }
  128.     //查询数据
  129.     function selectDB(){
  130.       var db = api.require('db');
  131.       db.selectSql({
  132.           name: 'testDB',
  133.           sql: 'SELECT * FROM Persons9'
  134.       }, function(ret, err) {
  135.           if (ret.status) {
  136.             var tabstr = '';
  137.             for (var i = 0; i < ret.data.length; i++) {
  138.               var datas = ret.data[i];
  139.               var newtr = '<tr><td>'+ datas.Id_P +'</td><td>'+datas.LastName+'</td><td>'+ datas.FirstName +'</td><td>'+ datas.Address +'</td><td>'+datas.City+'</td></tr>';
  140.               tabstr =  tabstr + newtr;
  141.             }
  142.             $api.dom('#table').innerHTML = tabstr;
  143.               console.log(JSON.stringify(ret) + '查询成功');
  144.           } else {
  145.               console.log(JSON.stringify(err) + '查询失败');
  146.           }
  147.       });
  148.     }

  149.     //插入数据
  150.     function insertDB(){
  151.           id = id + 1;
  152.       var lname = $api.dom('#LastName').value;
  153.       var fname = $api.dom('#FirstName').value;
  154.       var addres = $api.dom('#Address').value;
  155.       var city = $api.dom('#City').value;
  156.       var db = api.require('db');
  157.       var sspl = 'INSERT INTO Persons9 VALUES ( "'+id+'","'+lname+'", "'+fname+'", "'+addres+'", "'+city+'")';
  158.       db.executeSql({
  159.           name: 'testDB',
  160.           sql: sspl
  161.       }, function(ret, err) {
  162.           if (ret.status) {
  163.             selectDB();
  164.             $api.dom('#LastName').value = '';
  165.             $api.dom('#FirstName').value = '';
  166.             $api.dom('#Address').value = '';
  167.             $api.dom('#City').value = '';
  168.               console.log(JSON.stringify(ret) + '插入数据');
  169.           } else {
  170.               console.log(JSON.stringify(err) + '插入数据失败');
  171.           }
  172.       });
  173.     }
  174.     function reUrl(){
  175.       var reUrl = 'skdkjskdjksdkj';
  176.       return  reUrl;
  177.     }

  178. </script>
复制代码


参考一下
42
帖子
4
勋章
1万+
Y币
建议你自行百度sql语句

db执行语句建立在懂得sql前提  
3
帖子
0
勋章
19
Y币
Mr.ZhouHeng 发表于 2019-11-20 14:09
建议你自行百度sql语句

db执行语句建立在懂得sql前提

好的,谢谢提醒!
3
帖子
0
勋章
19
Y币

收到了,有例程,真是太好了,谢谢您!
看光头的视频教程
3
帖子
0
勋章
19
Y币

var sspl = 'INSERT INTO Persons9 VALUES ( "'+id+'","'+lname+'", "'+fname+'", "'+addres+'", "'+city+'")';

从您这学到了这个方法,之前琢磨了好久,如何采用带参数的函数插入数据,今天终于解惑了,版主真是好人
3
帖子
0
勋章
19
Y币
云渡口 发表于 2019-11-21 21:47
看光头的视频教程

嗯嗯,好嘞,谢谢提醒!
您需要登录后才可以回帖 登录

本版积分规则