Обновление таблицы не работает должным образом - PullRequest
1 голос
/ 02 августа 2011

Я пытаюсь использовать следующий код, но не могу обновить свою таблицу.

db = dbHelper.getWritableDatabase();
int i = 1;
String updateStatement = "update "+MESSAGE_TABLE+" SET status ="+i+" where message_id = "+message_id;
SQLiteStatement update;
update = db.compileStatement(updateStatement);
update.executeInsert();

Вместо update.executeInsert() я также попытался update.executeI(), но он также не работал.

Ответы [ 5 ]

1 голос
/ 02 августа 2011

Надеюсь, это поможет

db = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);    

ContentView update = new ContentView();
update.put("fieldNameToUpdate","Value Here as a String " or integer);
db.update("table", update,/*where clause*/ "id=2",null);

db.close();

Это работает для меня. Вы можете изменить значения согласно вашему требованию.

Спасибо Shah ..

1 голос
/ 02 августа 2011

Используйте executeUpdateDelete() метод в SQLiteStatement и хорошо читайте документы. http://developer.android.com/reference/android/database/sqlite/SQLiteStatement.html

0 голосов
/ 22 апреля 2015

Если вы хотите использовать SQLiteStatement с методом executeUpdateDelete(), это работает:

String sql = "UPDATE table_name SET column_2=? WHERE column_1=?";
SQLiteStatement statement = db.compileStatement(sql);

int id = 7;
String stringValue = "hi there";

statement.bindString(1, stringValue);
statement.bindLong(2, id); // These match to the two question marks in the sql string

int numberOfRowsAffected = statement.executeUpdateDelete();

Примечание: executeUpdateDelete() было введено в API 11. См. Эти вопросы и ответы .

Более полное объяснение того, как использовать подготовленные высказывания :

0 голосов
/ 02 августа 2011

Я думаю, что если все правильно, проблема в вашем запросе

проблема может быть в типе поля. Предположим, что message_id не число. Затем используйте как

 String updateStatement = "update "+MESSAGE_TABLE+" SET status ="+i+" where message_id = '"+message_id+"'";

То же самое для статуса полей, если это не числовой тип, необходимо использовать ''

0 голосов
/ 02 августа 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...