Android SQLite - 更新不起作用,但db.update确实返回1

时间:2014-06-01 14:08:14

标签: android sqlite

好的,这是另一个难题 - 所以基本上尝试更新记录 - 它失败了

然而db.update方法确实返回1表示成功。

表SQL是:

public String getSQL() {
        return "CREATE TABLE IF NOT EXISTS transactions ( " +
            "transactionid INTEGER PRIMARY KEY AUTOINCREMENT, " +
            "accountid INTEGER, "+
            "amount REAL, " +
            "transactiontype INTEGER, " +
            "checknumber TEXT, " +
            "checkdate TEXT, " +
            "cleared INTEGER," +
            "notes TEXT," +
            "categoryid INTEGER)";
    }

使用以下方式提供更新的值。我确保记录确实存在。

dbh.updateRecord(values, "transactions", "transactionid", Integer.toString(selTrans.getTransactionID()) );

其中updateRecord方法定义为:

public void updateRecord(ContentValues values, String tableName, String pkName, String pkValue) {
        SQLiteDatabase db=null; 

        try {
            db = this.getWritableDatabase();
            int ret = db.update(tableName, values,pkName + " =?", new String[] {pkValue} );
            Log.v("jv", "Update Record is : " + ret);

        } catch(Exception e) { Log.v("jv", "Updating Record: " + e.toString());  }
    }

打印更新记录为:1 =>表示更新操作成功。

但是当检索到交易价值时=>没有反映新值,表示没有更新。

我试过以下事情:

-1使用SQL格式 -2将String.valueOf用于PKValue -3使用beingTransaction / transactioNSuccessful / endTransaction

似乎无效。

任何帮助将不胜感激

0 个答案:

没有答案