2013-05-06 2 views
0

В настоящее время я разрабатываю приложение для Android. База данных содержит только один столбец только с именем. Вот это код:Обновление базы данных с помощью одного поля

public long insert(String content){ 

    ContentValues contentValues = new ContentValues(); 
    contentValues.put(KEY_CONTENT, content); 
    return sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues); 
} 

Как сделать обновление для определенного столбца (в соответствии с его индексом) в этой базе данных?

+0

Если это действительно единственный столбец, и у вас нет столбца id, у вас есть проблема. –

+0

Я использовал, чтобы поставить столбец _id, но он всегда вызывает силу каждый раз, когда приложение запускается. Попробовав несколько решений, единственным решением, которое работает, является создание базы данных только с одним столбцом. –

+0

Без столбца id вам нечего идентифицировать строку, кроме содержимого столбца. В таблице базы данных нет такой вещи, как заказ, если у вас нет заказов, поэтому вы не можете «обновить третью строку», например. –

ответ

1
db.update 
(
    MYDATABASE_TABLE, contentValues , ID_FIELD_CONST + " = ?", 
    new String[] { idValue } 
); 
+0

Спасибо, что ответили, у меня вопрос. IdValue - это данные, которые собираются заменить старые данные в этом столбце, верно? –

+0

Нет, это данные, которые вы используете для поиска строки, которую хотите обновить. Единственные значения, которые будут фактически обновлены, - это те, что содержатся в contentValues. Поэтому, если вы добавите 2 столбца данных, эти 2 будут обновлены, если вы добавите 1, то 1 будет обновлен, а другой останется нетронутым. – bclymer

+0

Я вижу. Итак, скажем, я хочу обновить столбец с номером индекса 3. Номер индекса будет восстановлен по «ID». Метод обновления будет таким: public boolean updateContent (long ID) { ContentValues ​​args = новый ContentValues ​​(); args.put (KEY_CONTENT, content); return db.update ( MYDATABASE_TABLE, args, ID_FIELD_CONST + "=", новый String [] {ID} ); } что это? –

0

Вы можете использовать:

ContentValues cv = new ContentValues(); 
cv.put(KEY1,value1); 
cv.put(KEY2,value2); 
//... all the fields you want to update 
String where = KEY_CONTENT + " = " + value; 
db.update(table_name,cv,where,null); 

КЛЮЧ1, KEY2 ... это имя поля, которые вы хотите обновить значение1, значение2 ... являются новые значения полей, которые вы хотите для обновления где строка должна указать, в какой строке нужно обновить.

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