【问题标题】:What's the issue with the SQLite Update method?SQLite 更新方法有什么问题?
【发布时间】:2014-01-25 03:26:09
【问题描述】:

由于某种原因,更新方法不会改变我的 SQLite 数据库值!为什么?

for (int go = 0; go < assignmentList.size(); go++) {

        dateBefore = assignmentList.get(go).assignmentDate;
        assDaysUntilDue = assignmentList.get(go).assignmentDaysUntilDue;
        daysElapsed = dateNow - dateBefore;
        newDays = assDaysUntilDue - daysElapsed;


        ContentValues values = new ContentValues();
        values.put(DBRecordsLayer.ASSIGNMENT_DAYS_UNTIL_DUE, 1);

        dataBase.update(DBRecordsLayer.ASSIGNMENT_TABLE, values, DBRecordsLayer.ASSIGNMENT_NUM + " = " + go, null);

//UP HERE ^^ 只是将值更改为 1,以防变量出现问题, //但是即使这样也没有给我列下1的值 //第二次尝试更改值...

        dataBase.execSQL("UPDATE " + DBRecordsLayer.ASSIGNMENT_TABLE + " SET " + DBRecordsLayer.ASSIGNMENT_ENTRY_DATE + " = " + 
                dateNow + " WHERE " +  DBRecordsLayer.ASSIGNMENT_NUM + " = " +  go + ";");
            dataBase.execSQL("UPDATE " + DBRecordsLayer.ASSIGNMENT_TABLE + " SET " + DBRecordsLayer.ASSIGNMENT_DAYS_UNTIL_DUE + " = " + 
                newDays + " WHERE " +  DBRecordsLayer.ASSIGNMENT_NUM + " = " +  go + ";");


        }

【问题讨论】:

  • WHERE datefield=2014-01-24 不会有好结果...
  • 不存在assignment_num列与go具有相同值(或相同类型)的记录。
  • " WHERE " + DBRecordsLayer.ASSIGNMENT_NUM + " = " + go 这不是吗??
  • 日期也是 int 值,我通过将 Millis 转换为 int 来确保它

标签: android database sqlite sql-update


【解决方案1】:

我发现了我的问题: 由于这不是运行时问题,我发现我的问题是 (go+1) 问题。由于数据库 ID 值不一定从 '1' 开始,它会更新数据库中不再存在的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多