2012-12-27 200 views
1

我想在我的sqlite数据库中插入一个默认数据。创建数据库和默认数据

这是我做过什么:

private static final String DATABASE_CREATE_position = "CREATE TABLE position(latitude VARCHAR(20), longitude VARCHAR(20), address VARCHAR(100))"; 

@Override 
public void onCreate(SQLiteDatabase db) { 
    // Create the table 
    db.execSQL(DATABASE_CREATE_position); 

    ContentValues defaultPos = new ContentValues(); 
    defaultPos.put("latitude", "40.604398"); 
    defaultPos.put("longitude", "-3.709002"); 
    defaultPos.put("address", "Avenida del parque "); 

    db.insert("position", null, defaultPos); 

    db.close(); 

} 

但是数据库是空的,哪里是错?

回答

4

解决方案:

private static class DatabaseHelper extends SQLiteOpenHelper { 

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

    @Override 
    public void onCreate(SQLiteDatabase db) {   
     db.execSQL(DATABASE_CREATE_position); 

     db.execSQL("insert into position (latitude,longitude,address) values (40.604398,-3.709002,'Avenida del parque ')"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

    .... 
1

摆脱你的onCreate()函数db.close()的,它会插入从测试代码我你周围写就好了。否则,它会抛出一个IllegalStateException并指出数据库未打开。