2014-09-26 5 views
-1

У меня есть SQL-запись базы данных, которая выполняет эту работу.Формат базы данных вставить в android-способ

String sql = "INSERT OR REPLACE INTO " + TABLE_USER 
       + "(" + KEY_ID + ", " + KEY_EMAIL + ", " + KEY_FIRST_NAME + ", " + KEY_LAST_NAME + ", " + KEY_AVATAR + ", " + KEY_AVATAR_UID + ") " 
       + "VALUES (" 
       + 1 + ",'" + userInfo.getEmail() + "','" + userInfo.getName() + "','" + userInfo.getLastName() + "','" + userInfo.getAvatar() + "'," 
       + "(SELECT " + KEY_AVATAR_UID + " FROM " + TABLE_USER + " WHERE " + KEY_ID + " = " + 1 + "));"; 


database.execSQL(sql); 
database.close(); 

Я хочу обновить все поля пользователя с идентификатором 1, но сохранить аватар uid.
Как я могу написать этот чистящий или как я могу улучшить это утверждение?

Спасибо.

+0

http://bobby-tables.com/about.html – Simon

+0

Используйте 'database.update()' – 323go

ответ

2

Просто удалите инструкцию SELECT.

ВСТАВЬТЕ ИЛИ ЗАМЕНИТЬ сначала попробуйте ВСТАВИТЬ.
Если он не работает (существующая запись), он будет выполнять ОБНОВЛЕНИЕ.

0

Я бы использовал собственный способ Android!

ContentValues mValues = new ContentValues(); 
mValues.put(YOUR_COLUMN, YOUR_VALUE); 


YOUR_SQLITEDATABASE_OBJECT.update(your_table,mValues, YOUR_QUERY, YOUR_QUERY_PARAMS); 

Где YOUR_QUERY: ex. "Time = ?"

Где YOUR_QUERY_PARAMS: бывший new String[]{"9-11"}

0

Во-первых, обнаружить, нужно ли вам обновить или вставить.

Запишите запрос на вставку или обновление.

Смежные вопросы