【问题标题】:Invalid request sqlite android [closed]无效的请求sqlite android [关闭]
【发布时间】:2014-11-02 11:26:48
【问题描述】:

对不起我的英语。无法发出有效请求来更新数据。 这是有效的:

    "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:电子/控制器(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/控制器(1479):在 android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native 方法)11-02 11:17:54.986:E/控制器(1479):在 android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882) 11-02 11:17:54.986:E/控制器(1479):在 android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493) 11-02 11:17:54.986:E/控制器(1479):在 android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 11-02 11:17:54.986:E/控制器(1479):在 android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58) 11-02 11:17:54.986:E/控制器(1479):在 android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31) 11-02 11:17:54.986:E/控制器(1479):在 android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1663) 11-02 11:17:54.986:E/控制器(1479):在 android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594) 11-02 11:17:54.986:E/控制器(1479):在 数据库.Controller.update(Controller.java:80) 11-02 11:17:54.986: E/控制器(1479):在 com.example.firstv.ComplateDreams$2$1.onClick(ComplateDreams.java:92) 11-02 11:17:54.986:E/控制器(1479):在 com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166) 11-02 11:17:54.986:E/控制器(1479):在 android.os.Handler.dispatchMessage(Handler.java:99) 11-02 11:17:54.986:E/控制器(1479):在 android.os.Looper.loop(Looper.java:137) 11-02 11:17:54.986: E/控制器(1479):在 android.app.ActivityThread.main(ActivityThread.java:4745) 11-02 11:17:54.986:E/控制器(1479):在 java.lang.reflect.Method.invokeNative(Native Method) 11-02 11:17:54.986:E/控制器(1479):在 java.lang.reflect.Method.invoke(Method.java:511) 11-02 11:17:54.986: E/控制器(1479):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 11-02 11:17:54.986:E/控制器(1479):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 11-02 11:17:54.986:E/控制器(1479):在 dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

    标签: java android mysql eclipse sqlite


    【解决方案1】:

    不确定字符串的内容是什么样的。但是您似乎忘记将上下文字符串用单引号括起来。可能就是这样。

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

    【讨论】:

    • 这是工作,谢谢!
    【解决方案2】:

    这个怎么样(将上下文包装成'')?

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

    【讨论】:

      猜你喜欢
      • 2012-03-12
      • 2015-02-05
      • 2018-08-15
      • 2017-03-29
      • 2012-10-28
      • 2023-03-16
      • 2014-03-01
      • 2018-08-03
      • 2012-11-25
      相关资源
      最近更新 更多