2014-04-02 82 views
0

我是新来的Sqlite,我无法在数据库中插入值,通过下面的代码创建数据库和表都创建,但没有插入值,我的代码有什么问题?有什么建议么!!!我能够看到警报值已存储但无法在表格数据中看到。在sqlite中插入查询问题? (值不插入)

 $("#btnDefaultSave").click(function(){ 
       var Latlongs = "Test1"; 
       var Location = "Test2"; 
       var Category = "Test3"; 
       var Address = "Test4"; 
       var db = window.sqlitePlugin.openDatabase({name: "TestDB"}); 
       db.transaction(function (tx) { 
    tx.executeSql('CREATE TABLE IF NOT EXISTS Locationlog (id INTEGER PRIMARY KEY, Coordinates TEXT, Location TEXT, Category TEXT, Address TEXT)'); 
      }); 
    db.transaction(function (tx){ 
tx.executeSql('INSERT INTO Locationlog (Coordinates, Location, Category, Address) VALUES ('+Latlongs+', '+Location+', '+Category+', '+Address+')'); 
                     alert("values are stored"); 
                     }); 

                 }); 
+1

标识不插入你必须保持自动生成的.. 你给了主键,,,但不自动增量在。 在创建表时需要这样做 –

+1

在创建表查询中使用AUTOINCREMENT ,,,如 CREATE TABLE IF NOT EXISTS Locationlog(id INTEGER PRIMARY KEY AUTOINCREMENT,Coordinates TEXT,Location TEXT,Category TEXT,Address文本)'); –

+0

将尝试您的建议,并让你知道 – Vinod

回答

0

我已经改变插入查询的格式如下,

 db.transaction(function (tx){ 

    tx.executeSql('INSERT INTO Locationlog (Coordinates, Location, Category, Address) VALUES (?,?,?,?)',[Latlongs,Location,Category,Address]); 
    alert("values are stored"); 
     }); 
0

在你的情况下,当“值存储”显示消息,“插入......” SQL语句可能仍在执行。请检查数据库事务是否在成功回调中完成。

db.transaction(function (tx) { 
     tx.executeSql('INSERT INTO Locationlog (Coordinates, Location, Category, Address) VALUES (?,?,?,?)',[Latlongs,Location,Category,Address]); 
    }, function successCB() { 
     alert("values are stored!"); 
    }, function errorCB() { 
     alert("Error!"); 
    } 
);