INSERT INTO android SQL语句麻烦

时间:2013-03-26 20:06:51

标签: android sql

我无法使用INSERT INTO语句直接将一些数据插入到SQLite中,这可能是一个愚蠢的错误,但我找不到它。

    String sql = ("INSERT INTO task(task_goal) VALUES('ASDA');");
            this.ourDatabase.execSQL(sql); 

错误是:

   table task has no column named task_goal

显然有一个名为任务目标的列,所以我不确定为什么会出现这个错误?

db.execSQL("CREATE TABLE " + DATABASE_TASK3 + " (" +

            KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
            KEY_GOAL + " TEXT NOT NULL);"       
    );

其中:

public static final String KEY_ROWID = "_id";
public static final String KEY_GOAL = "task_goal";
private static final String DATABASE_TASK3 = "task";

1 个答案:

答案 0 :(得分:1)

在运行您的应用程序至少一次后,您似乎已更改了定义表的Java代码,但尚未更新SQL架构。您需要递增DATABASE_VERSION以告诉SQLiteOpenHelper有新模式,它不会检查您。


DATABASE_VERSION是一个传递给SQLiteOpenHelper构造函数的公共变量,它不是通用的,如果你自己不使用这个变量,你只需增加传递给SQLiteOpenHelper constructor的任何值。 :

SQLiteOpenHelper (Context context, String name, 
        SQLiteDatabase.CursorFactory factory, int version)