java - 如何设置并显示本地数据库中的另一个字段?

标签 java mysql angularjs web-services ionic-framework

我正在尝试示例待办事项应用程序,我在 ionic 中下载了该示例,并且尝试它正在工作,并且我确实在 newTask.html 中添加了另一个文件,并添加到本地数据库中,与之前的值相同,但它是不工作你能帮我如何在本地数据库中添加另一个文件并在列表 html 文件中获取结果....

NewTask.html
------------
<div class="modal" ng-controller="newTaskCtrl">
    <ion-header-bar class="bar-stable">
        <h1 class="title">Add New Task</h1>
        <button class="button button-clear button-positive" ng-click="closeNewTask()">Cancel</button>
    </ion-header-bar>

    <ion-content>
        <form ng-submit="createTask(task)">
            <div class="list">
                <!--label class="item item-input">
                    <input type="text" placeholder="Title What do you need to do?" ng-model="task.title">
                </label-->

                 <label class="item item-input item-stacked-label">
                    <span class="input-label">Title</span>
                    <input type="text" placeholder="What do you need to do?" ng-model="task.title">
                     <span class="input-label">Lasr Name</span>
                    <input type="text" placeholder="Firstname?" ng-model="task.firstname">
                </label>
                <!--div class="row">
                <label class="col">
                    <input type="" ng-model="time">
                </label>
                <label class="col">
                    <input type="text" placeholder="End?" >
                </label>
                    </div-->
            </div>
            <div class="padding">
                <button type="submit" class="button button-block button-positive">Create Task</button>
            </div>
        </form>
    </ion-content>
</div>

NewTaskCtrl.js
-------------------
todoApp.controller('newTaskCtrl', function($scope, $ionicModal, $ionicPopup, SQLService) {
    // Called when the form is submitted

    $scope.createTask = function(task) {
    SQLService.set(task.title,task.firstname);
    $scope.loadTask();
    $scope.taskModal.hide();
    task.title = "";
    task.firstname = "";
  };


SQLService.js
------------------


todoApp.factory("SQLService", function ($q) {

    var db;
    var task='';
    var deltask;

    function createDB() {
        try {
            db = window.openDatabase("todoDB", "1.0", "ToDoApp", 10*1024*1024);
            db.transaction(function(tx){
                tx.executeSql("CREATE TABLE IF NOT EXISTS tasks (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, title VARCHAR(100), firstname VARCHAR(100) )",[]);
            });
        } catch (err) {
            alert("Error processing SQL: " + err);
        }
        console.log('database created');
    }

    function setTasks(title,firstname){
        return promisedQuery("INSERT INTO tasks(title,firstname) VALUES ('" + title + "','" + firstname + "')", defaultResultHandler, defaultErrorHandler);
    }
     function getTasks(){
        return promisedQuery('SELECT * FROM tasks', defaultResultHandler, defaultErrorHandler);
    }

    function defaultResultHandler(deferred) {
      return function(tx, results) {
        var len = results.rows.length;
        var output_results = [];

        for (var i=0; i<len; i++){
            var t = {'id':results.rows.item(i).id,'title':results.rows.item(i).title,'firstname':results.rows.item(i).firstname};
            output_results.push(t);             
        }

        deferred.resolve(output_results);  
      }  
    }

    function defaultErrorHandler(deferred) {
      return function(tx, results) {
        var len = 0;
        var output_results = ''; 
        deferred.resolve(output_results);
      } 
    }

    function promisedQuery(query, successCB, errorCB) {
      var deferred = $q.defer();
      db.transaction(function(tx){
        tx.executeSql(query, [], successCB(deferred), errorCB(deferred));      
      }, errorCB);
      return deferred.promise;  
    }

    return {
        setup: function() {
          return createDB();
        },
        set: function(title,firstname) {
            return setTasks(title,firstname);
        },

        all: function() {
          return getTasks();
        }
    }
});

PLease see the SQL Service and help me,is it correct what i add the filed name in  "setTasks function.."

最佳答案

好的,您已经尝试了下载的示例,现在您已经在 NewTask.html 中添加了另一个字段。但是您添加的新字段没有添加到表中,对吧?

您是否尝试更改打开的数据库的版本?

db = window.openDatabase("todoDB", "1.0", "ToDoApp", 10*1024*1024);db = window.openDatabase("todoDB", "2.0", "ToDoApp", 10*1024*1024);

关于java - 如何设置并显示本地数据库中的另一个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36009133/

相关文章:

MySQL - 选择日期时间列之前 1 小时的行

mysql - 关于列中的选择查询

javascript - 在 Angular JS ui 路由器中使用 ui-sref 时,不会生成 href

html - 如何将 ionic 侧菜单嵌套到 ionic 导航 View 中?

javascript - Angular $Scope 解构模式错误

java - 应用程序崩溃后服务无法继续运行

java - Windows XP 无法在关机时终止 javaw.exe

java - 如何将带有自定义对象的 HashMap 添加到 ArrayList

java - opencv java修改像素值

php - 获取唯一ID的简单方法