行中的sqlite更新字段无法识别行ID的变量

时间:2012-12-12 17:53:36

标签: android sqlite sql-update

我第一次尝试更新记录中的字段,但是,当使用变量指定行时,它没有保存更新。

问题背景 - 当用户点击图像时,调用checkDone()函数,传递行号(i)。然后,我将一个全局变量(glbID)设置为行nbr(i),并调用updateDB函数来更新指定行的状态字段。我从未收到过错误,但是,注意到该字段没有更新。当我对行id进行硬编码时,它保存了更新。但是,使用glbID var以及另一个strID来查看它是否是格式类型问题,无法解决问题。尝试了其他几个变种无济于事。

感谢任何人对此的帮助。我正在使用Android模拟器进行测试,如果有任何其他有助于分析的信息,请与我们联系。

function checkDone(i) {
   var db = window.openDatabase("Database", "1.0", "GTKdb", 200000);
   glbID = i    //SET global variable to row nbr
   document.getElementsByTagName("img")[i].src = "img/checkbox_checked.png";
   db.transaction(updateDB, errorCB); 
}


function updateDB(u) {        
   var strDone = "DONE"
    var strID = "" + glbID;  //SET new variable to glbID, converting to string to see if format type issue

    u.executeSql('UPDATE USER set status = ? where id = ?', [strDone,"2"], successCB, errorCB); //THIS WORKS WHEN ID value hardcoded
   //u.executeSql('UPDATE USER set status = ? where id = ?', [strDone,glbID], successCB, errorCB); //NO UPDATE using var glbID
   //u.executeSql('UPDATE USER set status = ? where id = ?', strDone,strID], successCB, errorCB); //NO UPDATE using var strID
    alert('AFTER UPDATE Status= '+status);  //No value for status appears
}

1 个答案:

答案 0 :(得分:0)

我不确定,但这可能是问题所在。当你插入字符串时,你需要在引号内。

'UPDATE USER set status = "?" where id = ?'
希望它有所帮助。