SQLite错误没有这样的列/语法错误附近

时间:2015-11-13 15:51:15

标签: android sqlite

我是Android Studio的初学者...我的代码只适用于表上的3列,如果向表中添加另一个字段,则logcat将返回:

没有这样的专栏:" fone"

我已经更改了代码的TABLE创建部分,现在又返回了另一个错误(我不知道第一个错误是否仍然存在):

SQLite日志:(1)接近")":语法错误

确定错误在于创建TABLE或QUERY ...

我已经搜索了答案,字段的名称不是关键字,我试图纠正逗号等...

我认为SelectionArguments是解决方案,但我没有经验,我也不知道如何把价值放在那里...

很奇怪,因为我将这个字段添加到了TABLE中,就像我对其他人一样,但现在它返回了这些错误,apk崩溃了。

这是表:

public void onCreate(SQLiteDatabase db) {
        String livro = "CREATE TABLE livros " +
                       " ( " +
                         " id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," +
                         " titulo TEXT NOT NULL," +
                         " autor TEXT NOT NULL," +
                         " pagina TEXT NOT NULL," +
                         " fone INTEGER," +
                       " )" ;
        db.execSQL(livro);

QUERY的一部分:

String[] columns = {"id", "titulo", "autor", "pagina", "fone"};
        Cursor cursor = getWritableDatabase().query("livros", columns,  null, null, null, null, null, null);

        ArrayList<Livros> livros = new ArrayList<Livros>();

        while (cursor.moveToNext()){

            Livros livro = new Livros();

            livro.setId(cursor.getLong(0));
            livro.setTitulo(cursor.getString(1));
            livro.setAutor(cursor.getString(2));
            livro.setPagina(cursor.getString(3));
            livro.setFone((cursor.getInt(4))); ...

2 个答案:

答案 0 :(得分:4)

此行之后还有一个,(在CREATE请求中)

fone INTEGER,

删除它

答案 1 :(得分:0)

" fone INTEGER," +
                   " )" ;

应该是

" fone INTEGER)" ;

您不会在最后一列之后使用逗号。