SQLite只有一列获得Android更新

时间:2013-09-24 06:16:31

标签: android sql sqlite

我有一个工作正常的Sqlite数据库,我可以插入没有问题的行,但是当我尝试进行更新时,只有一个列得到更新。我得到一个返回值1,但只有SCANNED列被更新,这是唯一一个已经值为0并且更改为1的列。

public int UpdateScanInvoice(String Invoice, int scanned, String empname, 
              int empnum) {
        Calendar c = Calendar.getInstance();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd",Locale.US);
        String formattedDate = df.format(c.getTime());
        SimpleDateFormat tf = new SimpleDateFormat("hh:mm:ss",Locale.US);
        String formattedTime = tf.format(c.getTime());
        String strFilter = MySQLiteHelper.TICKETNR + "='" + Invoice +"'";
        ContentValues scanvalues = new ContentValues();
            scanvalues.put(MySQLiteHelper.LOADEMPNAME, empname);
        scanvalues.put(MySQLiteHelper.SCANNED, scanned);
        scanvalues.put(MySQLiteHelper.LOADEMPNUM, empnum);
        scanvalues.put(MySQLiteHelper.LOADDATE,formattedDate);
        scanvalues.put(MySQLiteHelper.LOADTIME, formattedTime);
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        int rowUpdated = db.update(MySQLiteHelper.TABLE_INVOICE, scanvalues,strFilter, null);
        return rowUpdated;
    }

也许我原来的插页错了? 这是原始插页。

values.put(MySQLiteHelper.SCANNED, 0);
values.put(MySQLiteHelper.LOADDATE, "");
values.put(MySQLiteHelper.LOADTIME, "");
values.put(MySQLiteHelper.LOADEMPNAME, "");
values.put(MySQLiteHelper.LOADEMPNUM, "");

我的文件有19列,当我进行插入时,只有最后4列不会更新或取任何值。 我删除了重建数据库的数据,结果相同。

谢谢, KimHJ

1 个答案:

答案 0 :(得分:1)

为什么你要再次更新所有值你想要更改SCANNED值只是为了更新那个值..

    scanvalues.put(MySQLiteHelper.SCANNED, scanned);
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    int rowUpdated = db.update(MySQLiteHelper.TABLE_INVOICE, scanvalues,strFilter, null);

仅更新SCANNED这已经足够了,但您正在更新所有值...这将替换您的所有旧数据