#android #database #sqlite #android-sqlite
#Android #База данных #sqlite #android-sqlite
Вопрос:
Следующая строка показала мне ошибку как ошибку sytax рядом с «SET»
db.update( TABLE_SECOND_NAME,cv, " SET " COL_SECOND_2 "= ( CONCAT
" (COL_SECOND_3 ", " name) "'ROLL=?",new String[]{roll});
Я хочу сохранить как старые, так и новые значения во время обновления.Первое значение, которое уже сохранено, и новое, которое сейчас обновляется.
журнал как:
09-29 14:20:37.021 27122-27122/com.example.prince.studentrecord
E/ViewRootImpl: sendUserActionEvent() mView == null
09-29 14:20:37.581 27122-27122/com.example.prince.studentrecord
ViewPostImeInputStage ACTION_DOWN
09-29 14:20:38.941 27122-27122/com.example.prince.studentrecord
D/ViewRootImpl:
09-29 14:20:39.231 27122-27122/com.example.prince.studentrecord
E/ViewRootImpl: sendUserActionEvent() mView == null
09-29 14:20:42.061 27122-27122/com.example.prince.studentrecord
09-29 14:20:42.161 27122-27122/com.example.prince.studentrecord
E/SQLiteLog: (1) near "SET": syntax error
Комментарии:
1. обновление int (String table, значения ContentValues, строка whereeclause, строка [] WHEREARARGS) … основной вопрос sql: можем ли мы использовать «SET» в where ?
2. … и нет, вы не можете использовать
SQLiteDatabase.update
для обновления столбца значением из другого столбца3. То, что вы сделали, это смешали
execSQL()
синтаксис (обычная команда SQL) сupdate()
методом, который переопределяет обычную команду обновления SQL.
Ответ №1:
Используйте этот метод для обновления таблицы базы данных sqlite :
public int updateContact(Контактный контакт) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_PH_NO, contact.getPhoneNumber());
// updating row
return db.update(TABLE_CONTACTS, values, KEY_ID " = ?",
new String[] { String.valueOf(contact.getID()) });
}
Комментарии:
1. Я написал все правильно как: public boolean updateData_Second(строка roll, имя строки, отец строки, продолжение строки, строка cls,дата рождения строки) { SQLiteDatabase db=this.getWritableDatabase(); ContentValues cv=new ContentValues(); cv.put(COL_SECOND_1,roll); cv.put(COL_SECOND_2,имя); cv.put(COL_SECOND_3, отец); cv.put(COL_SECOND_4,продолжение); cv.put(COL_SECOND_5, cls); cv.put(COL_SECOND_6,дата рождения); db.update(TABLE_SECOND_NAME,cv, «ROLL= ?»,новая строка[]{roll}); возвращает true;
2. Удалите » перед БРОСКОМ и поместите после БРОСКА, а затем поместите»
3. db.update(TABLE_SECOND_NAME, cv, ROLL «= ?»,новая строка []{roll}), как это @siraliza
4. Чтобы обновить запись, она работает … но я хочу сохранить старое значение до обновления и новое после обновления с помощью функции concat ….. смотрите вопрос подробно
5. Чем вам нужно добавлять в базу данных, а не обновлять базу данных.