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

标签 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
}

最佳答案

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

'UPDATE USER set status = "?" where id = ?'

希望对您有所帮助。

关于android - 行中的 sqlite 更新字段无法识别行 ID 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13845725/

相关文章:

Android FullScreen 主题降低显示按钮的高度

java - 在 Java 中处理异步回调

c# - 记录整个 SOAP 请求还是只记录其中的参数?

mysql - 在mysql中更新时如何在查询中设置结果数据

android ORMLite 在数据库创建时填充表

android - Flutter - 收到通知时更改应用栏图标

macos - SQLITE_IOERR_VNODE 代码 6922 是什么意思?

java - 从 Java 中的 InputStream 以只读方式加载 SQLite

sql-server-2008 - SQL Server 中非常大的表的更新或合并

mysql - 如何将一行中的条目复制到另一行,但在mysql的同一列中