android.database.sqlite.SQLiteException:接近“1”:语法错误(代码1):编译时

android.database.sqlite.SQLiteException:接近“1”:语法错误(代码1):编译时

问题描述:

我在Android应用程序中收到我的SQLite数据库错误。这是我第一次遇到这个错误,所以我需要帮助。android.database.sqlite.SQLiteException:接近“1”:语法错误(代码1):编译时

这里是我的代码:

@Override 
public void onCreate(SQLiteDatabase db) { 
    String CREATE_WE_TABLE = "CREATE TABLE " + Constants.TABLE_NAME + 
       "("+ Constants.KEY_ID + " INTEGER PRIMARY KEY , " + 
       Constants.JOB_TITLE + " TEXT NOT NULL , " + Constants.JOB_DESCRIPTION + 
       " TEXT NOT NULL , " + Constants.START_YEAR + " TEXT NOT NULL , " + 
       Constants.END_YEAR + " TEXT NOT NULL);"; 

    db.execSQL(CREATE_WE_TABLE); 
} 

而且我的错误:

android.database.sqlite.SQLiteException: near "1": syntax error (code 1): , while compiling: CREATE TABLE workexperience(_id INTEGER PRIMARY KEY , title TEXT NOT NULL , description TEXT NOT NULL , 1 TEXT NOT NULL , 1 TEXT NOT NULL); 

出了什么问题?

+2

把一些'String',而不是'int'号'Constants.START_YEAR' –

+0

校验值Constants.START_YEAR和Constants中的常量.END_YEAR – akhilesh0707

+2

经过描述(在您的查询中)后,您有'START_YEAR'和'END_YEAR',两者都是第一个整数。你不能有一个名为'1'的列。你尤其不能有两列名为'1'。 –

尝试打印您的创建表语句。它清楚地表明语法不正确。纠正语法,然后它会正常工作。

编辑:如在评论部分中建议你不能有列2列名称为1,请更改它的工作。 (;)

请将此代码 你只需要一个分号粘贴在最后像

String CREATE_WE_TABLE = "CREATE TABLE " + Constants.TABLE_NAME + 
      "("+ Constants.KEY_ID + " INTEGER PRIMARY KEY , " + 
      Constants.JOB_TITLE + " TEXT NOT NULL , " + Constants.JOB_DESCRIPTION + 
      " TEXT NOT NULL , " + Constants.START_YEAR + " TEXT NOT NULL , " + 
      Constants.END_YEAR + " TEXT NOT NULL)";