2014-11-02 4 views
0

извините за мой английский. Невозможно сделать действительный запрос на обновление данных. Вот работы:Неверный запрос sqlite android

"UPDATE " + Names.TABLE_NAME + " SET " + Names.NamesColumns.FNAME + " = '" 
+ comment + "' WHERE " + BaseColumns._ID + " = " + l 

Но мне нужно изменить два поля:

"UPDATE " + Names.TABLE_NAME + " SET " + Names.NamesColumns.NAMEDREAM 
    + " = " + context + "," + Names.NamesColumns.DESCRIPTION + " = '" + description + "' 
WHERE " + BaseColumns._ID + " = " + l 

, а также добавление к запросу на новое значение здесь дает такие ошибки:

11- 02 11: 17: 54.982: E/SQLiteLog (1479): (1) рядом с «@ 53518c2c»: синтаксис ошибка 11-02 11: 17: 54.986: E/Controller (1479): сбой открытой базы данных. 11-02 11: 17: 54.986: E/Controller (1479): android.database.sqlite.SQLiteException: рядом с "@ 53518c2c": синтаксис ошибка (код 1): при компиляции: UPDATE Dreams SET nameDream = android.app.ContextImpl @ 53518c2c, description = 'ZXC' WHERE _id = 12 11-02 11: 17: 54.986: E/Controller (1479): atandroid.database.sqlite.SQLiteConnection.nativePrepareStatement (родной метод) 11-02 11: 17: 54.986: E/Controller (1479): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement (SQLiteConnection.java:882) 11-02 11: 17: 54.986: E/Controller (1479) : at android.database.sqlite.SQLiteConnection.prepare (SQLiteConnection.java:493) 11-02 11: 17: 54.986: E/Controller (1479): at android.database.sqlite.SQLiteSession.prepare (SQLiteSession.java:588) 11-02 11: 17: 54.986: E/Controller (1479): at android.database.sqlite.SQLiteProgram. (SQLiteProgram.java:58) 11-02 11: 17: 54.986: E/Controller (1479): at android.database.sqlite.SQLiteStatement. (SQLiteStatement.java:31) 11-02 11: 17: 54.986: E/Controller (1479): at android.database.sqlite.SQLiteDatabase.executeSql (SQLiteDatabase.java:1663) 11-02 11: 17: 54.986: E/Controller (1479): at android.database.sqlite. SQLiteDatabase.execSQL (SQLiteDatabase.java:1594) 11-02 11: 17: 54.986: E/Controller (1479): at database.Controller.update (Controller.java:80) 11-02 11: 17: 54.986: E/Controller (1479): at com.example.firstv.ComplateDreams $ 2 $ 1.onClick (ComplateDreams.java:92) 11-02 11: 17: 54.986: E/Controller (1479): at com.android .internal.app.AlertController $ ButtonHandler.handleMessage (AlertController.java:166) 11-02 11: 17: 54.986: E/Controller (1479): at android.os.Handler.dispatchMessage (Handler.java:99) 11-02 11: 17: 54.986: E/Controller (1479): at android.os.Looper.loop (Looper.java:137) 11-02 11: 17: 54.986: E/Controller (1479): на android.app.ActivityThread.main (ActivityThread.java:4745) 11-02 11: 17: 54.986: E/Controller (1479): at java.lang.reflect.Method.invokeNative (собственный метод) 11- 02 11: 17: 54.986: E/Controller (1479): at java.lang.reflect.Method.invoke (Method.java:511) 11-02 11: 17: 54.986: E/Controller (1479): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:786) 11-02 11: 17: 54.986: E/Controller (1479): at com.android.internal.os.ZygoteInit. main (ZygoteInit.java:553) 11-02 11: 17: 54.986: E/Controller (1479): at dalvik.system.NativeStart.main (Native Method)

ответ

2

Не знаете, как выглядит содержимое ваших строк. Но, похоже, вы забыли обмотать строку контекста в одинарные кавычки. Это может быть так.

"UPDATE " + Names.TABLE_NAME + " SET " + Names.NamesColumns.NAMEDREAM 
    + " = '" + context + "'," + Names.NamesColumns.DESCRIPTION + " = '" + description + "' 
WHERE " + BaseColumns._ID + " = " + l 
+1

это работа, спасибо! – nesalexy

1

Как об этом (оберните контекст в '')?

"UPDATE " + Names.TABLE_NAME + " SET " + Names.NamesColumns.NAMEDREAM 
    + " = '" + context + "'," + Names.NamesColumns.DESCRIPTION + " = '" + description + "' 
WHERE " + BaseColumns._ID + " = " + 
Смежные вопросы