2012-06-16 38 views
1

只有在數據庫創建時(即,僅當我的應用第一次在設備上安裝時),我想將記錄插入到sqlite數據庫中。 我搜索了一些幫助,有人建議將數據插入SQLiteOpenHelperonCreate()方法中,但不能使用該方法插入記錄。只有在數據庫第一次創建時纔將記錄插入sqlite數據庫

這是我的代碼

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); 
    } 
} 
+0

簡單的解決方案是使用預填充的數據庫,怎麼樣?檢查這個 http://stackoverflow.com/questions/9109438/using-already-創建數據庫與安卓/ 9109728#9109728 –

+0

不...我可以添加主要活動的記錄,但不能做同樣的「SQLiteOpenHelper」類 – rampireram

回答

0

看在你CREATE TABLE查詢空間文本之間缺少....

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

只需打印查詢的SOP,並嘗試在你執行它們桌面上的SQLITe工具。

+0

沒有...我可以添加重新來自主要活動的線索,但不能從「SQLiteOpenHelper」類中完成相同的操作:-(即使在糾正錯誤之後 – rampireram

0

CREATE聲明正確時,它會正常工作。它缺少空格和正確的拼寫。 _ID + "INTEGER ......必須_id +「INTEGER and PRMARY must be PRIMARY`。可能有其他錯誤。這是一個好主意,在你的程序中發出你執行到日誌中的所有SQL調試選項。