2015-12-21 3 views
-3

У меня есть таблица, созданная этой командой sql -> CREATE TABLE сообщения (идентификатор целочисленного первичного ключа автоинкремент, senderNum String, messagebody String, label String);android.database.sqlite.SQLiteException: no такой столбец: personal (код 1):

В этой таблице у меня есть ряд, имеющий senderNum равную 123.In для того, чтобы применить ярлык к нему я вызываю метод, который выглядит следующим образом ->

public void ApplyLabel(String senderNum){ 

     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor res = db.rawQuery("update messages set label=personal where senderNum=" + senderNum,null); 



    } 

где переменная senderNum имеет значение 123.Now когда этот метод называется it throws error like this -> android.database.sqlite.SQLiteException: нет такого столбца: личный (код 1):, при компиляции: обновлять сообщения, установить ярлык = персональный, где senderNum = 123

Я дона Не знаю, почему это дает эту ошибку?

+3

попробовать 'метка = 'personal''instead –

+0

@ JörnBuitink Но что, если У меня есть значение «личный», хранящийся в переменной, и я хочу использовать это в запросе? –

+1

@HemantKasat считают это: как ваше использование 'personal' отличается от вашего использования' senderNum'? – njzk2

ответ

0

Вам не хватает строковых разделителей ('), окружающих ваше строковое значение.
Как и сейчас, вы сравниваете столбец с именем label в другом столбце с именем personal, которого не существует.

Try:

Cursor res = db.rawQuery("update messages set label='personal' where senderNum=" + senderNum,null); 

Если вы хотите использовать переменную, вы можете объединить строку следующим образом:

Cursor res = db.rawQuery("update messages set label='" + strPersonal + "' where senderNum=" + senderNum,null); 
+1

спасибо !! вот что я искал. –

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