繁体   English   中英

Android Phonegap数据库

[英]Android Phonegap database

我正在使用以下代码从数据库中获取数据并在列表视图中显示内容。 但是每次加载应用程序时我都不想创建数据库...我只想创建一次...但是每当应用程序关闭时,数据库都会被删除。 我希望它留下来,以便我可以在下次创建时添加数据。

var arr = new Array();
var a;
var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
db.transaction(populateDB, errorCB, successCBc);
function populateDB(tx) {
  tx.executeSql('DROP TABLE IF EXISTS CUSTOMER');
  tx.executeSql('CREATE TABLE IF NOT EXISTS CUSTOMER (phno unique, fname, mname, lname, address, email)');
  tx.executeSql('INSERT INTO CUSTOMER (phno, fname, mname, lname, address, email) VALUES (16, "shank","p","ram","addresssss","emailaddress")');
};
function queryDB(tx) {
  tx.executeSql('SELECT * FROM CUSTOMER', [], querySuccess, errorCB);
}
function querySuccess(tx, results) {
  var len = results.rows.length;
  for (var i=0; i<len; i++){
    $('#home').append('<li><a href="#artists">'+results.rows.item(i).phno+'<br>'+results.rows.item(i).fname+'</a></li>').listview("refresh");
  }
};
function errorCB(err) {
  console.log("Error processing SQL: "+err.code);
}
function successCBc() {
  var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
  db.transaction(queryDB, errorCB);
};

从你的代码中删除该行,它的工作原理!

tx.executeSql('DROP TABLE IF EXISTS CUSTOMER');

根据您的代码,您将在populateDB()上删除表。 尝试从populateDB()中删除以下行并再次检查数据库状态。

tx.executeSql('DROP TABLE IF EXISTS CUSTOMER');

同样要么从表创建脚本中删除唯一约束,请使用以下内容替换现有代码

var randomId = new Date().getTime();
tx.executeSql('INSERT INTO CUSTOMER (phno unique, fname, mname, lname, address, email) VALUES ("'+ randomId +'", "shank","p","ram","addresssss","emailaddress")');

还要检查jQuery Mobile库是否正确加载,否则它将只打印第一条记录然后停止执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM