Android SQLite中没有此类列错误

Ada*_*chi 1 sqlite android

我创建了数据库.但它给了我"没有这样的列错误".我确定我的数据库有这个coloumn,因为我使用SQLite Manager来添加数据.我不明白为什么我会收到这样的错误.我在这里搜索了这个问题,但答案从未帮助过我.

大多数答案都说如果在编写此代码时列名之间没有空格,则会出现此错误.但我认为我写得正确.

public void onCreate(SQLiteDatabase sqLiteDatabase) {
    sqLiteDatabase.execSQL(
            "CREATE TABLE " + TABLE_NAME + " ("
           + BNUM_COL + " TEXT, " 
          + PNAME_COL + " TEXT, " 
          + AUTHOR_COL + " TEXT, " 
           + TYPE_COL + " TEXT, " 
           + PYEAR_COL + "INTEGER );");
  }
Run Code Online (Sandbox Code Playgroud)

我的Logcat也告诉我:

Cursor c = db.query("btable", SELECT, null, null, null, null, null, null);
Run Code Online (Sandbox Code Playgroud)

请帮我.

Ted*_*opp 13

最后一个字段在列名和关键字之间没有空格INTEGER.您需要更改此行:

+ PYEAR_COL + "INTEGER );");
Run Code Online (Sandbox Code Playgroud)

对此:

+ PYEAR_COL + " INTEGER );");
               ^
               |
               Note the extra space!
Run Code Online (Sandbox Code Playgroud)

帮助跟踪这些错误的简单诊断工具是将SQL查询存储在变量中,并在尝试执行之前将其记录下来.然后,您可以检查logcat输出以查看实际构建的语句.