У меня возникли проблемы, чтобы получить запрос на обновление, чтобы работать, используя следующий код:Android SQLite Update Issue запрос
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
.
Идентификационный номер - это строка, и я пытаюсь передать ее в запрос на обновление.
Запрос выполняется, но не обновляет запись.
Любые идеи, в которых я ошибаюсь?
вы сравниваете даты как строки, и ваши строки не в порядке «наиболее значимых-первых». Поэтому '11-май-2000' будет тестироваться как LARGER, чем' 11-jun-2016', потому что 'm' появляется после' j' в алфавите. вы никогда не должны хранить даты/время как строки в db, особенно когда вам нужно делать математику/сравнение по дате. –