Android SQLite更新查询问题

时间:2016-05-31 19:35:55

标签: android sqlite sql-update

我在使用以下代码获取更新查询时遇到问题:

ExternalDbOpenHelper dbOpenHelper = new         
ExternalDbOpenHelper(MainBarcode.this, DB_NAME);
database = dbOpenHelper.getWritableDatabase();
String testString = "11";
String Datetime;
Calendar c = Calendar.getInstance();
SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
Datetime = dateformat.format(c.getTime());
try
{
    ContentValues values = new ContentValues();
    values.put("TIMEOUT",Datetime );
    int int1 = Integer.valueOf(testString);
    database.update(TABLE_NAME, values, FRIEND_ID + " = ?",new String[] { String.valueOf(testString) });

} catch (Exception e) {                
}
database.close();

我的数据库包含以下列

TABLE_NAME = "LOG"

FRIEND_ID = AUTO INCREMENT NUMBER

FRIEND_TIMEOUT = TIME IN A STRING

我正在尝试通过指定FRIEND_TIMEOUT来使用当前时间和日期更新列Friend_ID

ID号是一个字符串,我正在尝试将其传递给更新查询。

查询运行但不更新记录。

我出错的任何想法?

1 个答案:

答案 0 :(得分:0)

我认为您为更新设置了错误的字段名称。 您已设置“TIMEOUT”,列名称为“FRIEND_TIMEOUT”。 请参阅以下代码

 SQLiteDatabase database = databaseHelper.getWritableDatabase();
    String testString = "1";
    String Datetime;
    Calendar c = Calendar.getInstance();
    SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
    Datetime = dateformat.format(c.getTime());
    try {
        ContentValues values = new ContentValues();
        values.put("FRIEND_TIMEOUT", Datetime);
        int int1 = Integer.valueOf(testString);
        long result = database.update("LOG", values, "FRIEND_ID" + " = ?", new String[]{String.valueOf(testString)});
        Log.d("result", "" + result);
    } catch (Exception e) {
        e.printStackTrace();
    }
    database.close();
}

注意:如果您仍然遇到此问题,请在上面的catch块中添加一行以打印异常,这样您就可以了解问题