起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1118|回复: 4

[结贴] 请教版主关于SQLITE查询结果输出问题。

[复制链接]

22

主题

142

帖子

316

积分

中级会员

Rank: 3Rank: 3

积分
316
QQ
发表于 2016-2-21 20:39:06 | 显示全部楼层 |阅读模式
尊敬的版主: 在您的多次指导下,终于完成了SQLITE数据库的使用,把已经输入好的数据完好的输出。

今天,我想对数据库中的姓名进行模糊查询,并输出到 list2中,下面的语句是模仿DEMO中sample data的,但是为何不给输出查询结果?不知道问题出在何处,特请教。多谢!



       Model.prototype.peopleDataSearch = function(event){

        event.async = true;
        var self = this;
         
               var db = this.demoDB.getDatabase();
                var data = event.source;

                var append = event.options && event.options.append;
         
         
          var searchVal = this.getElementByXid("searchInput").value;  
          if (searchVal!=""){

                             SqliteUtil.executeSql(db, "SELECT * FROM demo_test where fname like 'searchVal' ", null, onSuccess, onError);
                                 function onSuccess(res) {
                                  var table = SqliteUtil.rowsToTable(res.rows);
                                  data.loadData(table, append);
                                  data.doRefreshAfter(true, event.options);
                                  self.comp("list2").refresh(true);
                          }
                          function onError(msg) {
                                        data.doRefreshAfter(false, event.options);
                                  }
            }
            else {   
                 alert('请输入姓名!');         
            }
          };

22

主题

142

帖子

316

积分

中级会员

Rank: 3Rank: 3

积分
316
QQ
 楼主| 发表于 2016-2-21 21:03:09 | 显示全部楼层
目前的情况是,它没有把我需要查找的数据输出,而是将整个数据库的内容输出。
回复 支持 反对

使用道具 举报

22

主题

142

帖子

316

积分

中级会员

Rank: 3Rank: 3

积分
316
QQ
 楼主| 发表于 2016-2-21 22:30:13 | 显示全部楼层
刚刚仔细看了代码:发现上面有testDataCustomRefresh,这个对testData进行控制,也即是说我的语句不起作用,怎么办呢?

以下是testDataCustomRefresh的DEMO上的代码

Model.prototype.testDataCustomRefresh = function(event) {
                // 标记当前刷新是异步执行的
                event.async = true;

                var db = this.demoDB.getDatabase();
                var data = event.source;

                var append = event.options && event.options.append; // 是否数据追加模式
                var limit = event.limit; // 分页行数
                var offset = event.offset; // 分页偏移

                // 执行SQL查询
                SqliteUtil.executeSql(db, "SELECT * FROM demo_test LIMIT ? OFFSET ? ", [ limit, offset ], onSuccess, onError);
                function onSuccess(res) {
                        // 转换返回数据结果
                        var table = SqliteUtil.rowsToTable(res.rows);
                        if (offset == 0) {
                                // 如果偏移为零则表明加载第一页,需要在Table中提供总行数,用于分页计算
                                SqliteUtil.executeSql(db, "SELECT COUNT(*) cnt FROM demo_test ", [], function(res) {
                                        SqliteUtil.setTableTotal(table, res.rows.item(0).cnt);
                                        doRefreshData();
                                });
                        } else {
                                doRefreshData();
                        }
                        function doRefreshData() {
                                data.loadData(table, append);
                                // 异步执行模式下,加载数据后必须执行doRefreshAfter
                                data.doRefreshAfter(true, event.options);
                        }
                }
                function onError(msg) {
                        data.doRefreshAfter(false, event.options);
                }
        };
回复 支持 反对

使用道具 举报

发表于 2016-2-22 11:45:16 | 显示全部楼层
你写的代码也应该在testDataCustomRefresh中实现,
定义个全局变量,这个方法中写判断到底执行什么sql语句,你想控制逻辑,只要控制变量的值就行
然后调用data的refreshData方法,就会触发执行onCustomRefresh了
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

22

主题

142

帖子

316

积分

中级会员

Rank: 3Rank: 3

积分
316
QQ
 楼主| 发表于 2016-2-22 16:32:37 | 显示全部楼层
多谢指点!我再好好理解和消化。祝您及全家元宵节快乐!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-18 07:10 , Processed in 0.065670 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表