【问题标题】:Android SQLite INSERT INTO TABLE VALUESAndroid SQLite 插入表值
【发布时间】:2015-08-04 10:51:00
【问题描述】:

我收到此错误:

android.database.sqlite.SQLiteException: near ":12": syntax error (code 1): while compiling: INSERT INTO TIME VALUES(15:12);

我的代码如下:

SQLiteDatabase db = openOrCreateDatabase("timedb", Context.MODE_WORLD_WRITEABLE, null);
            s = (timePicker.getCurrentHour().toString() +" : " + timePicker.getCurrentMinute().toString());
            s = "'" + s + "'";


            db.execSQL("CREATE TABLE if not exists TIME"+" ("+ "times" +" VARCHAR(100)"+");");
            query = "INSERT INTO TIME"+ "VALUES"+"("+s+")";
            db.execSQL(query);
            startActivity(new Intent(Preferences.this, MainActivity.class));

我确定,我从这段代码中得到了错误。有人可以帮我吗?

【问题讨论】:

  • 插入前消毒。使用参数化查询。
  • 试试这个:query = "INSERT INTO TIME"+ "VALUES"+"('"+s+"')";
  • 将单引号添加到您的值,因为它是字符串。
  • 如前所述,您不仅需要单引号。您还错过了 VALUES 关键字之前的 空格"INSERT INTO TIME VALUES ('" + s + "')"。您还希望尽可能摆脱无用的字符串连接。
  • 在问问题之前至少在 Google 上搜索 如何在 Android 中使用 SQLite? 你会得到 100 种方法。我很确定。

标签: android sqlite sql-insert


【解决方案1】:

您在将值传递给查询时错过了单引号

试试看可能对你有帮助

query = "INSERT INTO TIME"+ " VALUES "+"('"+s+"')";

【讨论】:

    猜你喜欢
    • 2011-09-09
    • 2012-04-28
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多