1

我只想在创建数据库时(即仅当我的应用程序第一次在设备上安装时)才将记录插入我的 sqlite 数据库。我搜索了帮助,有人建议在 的 onCreate()方法中插入数据SQLiteOpenHelper,但使用该方法无法插入记录。

这是我的代码

public class EventsData extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "events.db";
    private static final int DATABASE_VERSION = 1;

    // Table name
    public static final String TABLE = "events";

    // Columns
    public static final String NAME = "first";
    public static final String TITLE = "second";

    public EventsData(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        db.execSQL("CREATE TABLE "+TABLE+"(" + _ID + "INTEGER PRMARY KEY AUTOINCREMENT, " + NAME +"TEXT, " + TITLE + "TEXT NOT NULL);");
        db.execSQL("INSERT INTO " + TABLE +" VALUES (1,'david','packard')");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                    db.execSQL("DROP TABLE IF EXISTS " + TABLE);
                    onCreate(db);
    }
}
4

3 回答 3

1

使用 sqlite 数据库浏览器制作数据库,这将有很大帮助尝试这个链接Inserting data to record in sqlite

于 2013-06-15T19:10:44.557 回答
0

看起来你的 CREATE TABLE 查询空间在文本之间丢失了......

NAME +"TEXT, " + TITLE + "TEXT NOT NULL);"

只需在 SOP 中打印查询并尝试在桌面上的 SQLITe 工具中执行它们。

于 2012-06-16T15:15:49.530 回答
0

CREATE当你得到正确的陈述时,它会很好地工作。它缺少空格和正确的拼写。 _ID + "INTEGER... 必须是 _ID + " INTEGER andPRMARY must bePRIMARY`。可能还有其他错误。在您的程序中有一个调试选项以将您正在执行的所有 SQL 发送到日志是一个好主意。

于 2012-06-16T15:18:28.753 回答