SQLite Phone Gap db事务不会在插入时保存一些记录

时间:2016-04-11 23:29:57

标签: android ios sqlite cordova

    dbShell.transaction(function(tx) {
       for (var i=0; i< data.length; i++ ){
            var sql ="Insert into students(studentid,name) SELECT '"+ data.studentid +"', '"+ data.name +"' WHERE NOT EXISTS(SELECT * FROM students WHERE studentid ='" + data.studentid +"')";
                            tx.executeSql(sql, [], nullHandler,dbErrorHandler);
            }
    });

我以json格式获取数据(学生列表)。我通过循环收到的数据在sqlite phonegap中插入查询。但是insert语句与某些记录不同。我觉得这是因为交易没有完成。

有人可以向我解释一下我在这个查询中做错了什么吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

使用以下代码进行插入:

ActionBar.Tab tab = ActionBar.NewTab();
tab.SetText(Resources.GetString(Resource.String.tab1_text));
tab.SetIcon(Resource.Drawable.tab1_icon);
tab.TabSelected += (sender, args) => {
                       // Do something when tab is selected
                   }
ActionBar.AddTab(tab);

tab = ActionBar.NewTab();
tab.SetText(Resources.GetString(Resource.String.tab2_text));
tab.SetIcon(Resource.Drawable.tab2_icon);
tab.TabSelected += (sender, args) => {
                       // Do something when tab is selected
                   }
ActionBar.AddTab(tab);

您需要添加successHandler和errorHandler

答案 1 :(得分:0)

我找到了答案。问题出在我收到的json数据中。其中一个名字包含&#39;单引号的名字。这导致查询失败。