public class DbHelper extends SQLiteOpenHelper{

public DbHelper (Context c, String name, CursorFactory f, int v) {

super(c, name, f, v);

}//end ctor /*
 * 一般当数据库不存在时,就会调用这个函数进行创建
 * 一般在这个函数里面创建数据库表
 */
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stu
String sql_1 = "create table student(stuId integer primary key ," +
" name text not null, age integer);";

db.execSQL(sql_1);

}//end  @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub }
以上代码我在onCreate()中建了数据表,但我想再建一个表和给原来那个表添加相应的属性,应该怎么
弄呢?(onCreate()在原来有表时是不会被调用的!)

解决方案 »

  1.   

    在onUpgrade里面操作,当数据库的版本version改变时,就会调用
      

  2.   

    SQLiteDatabase db = dbHelper.getWritableDatabase();
    db.execSQL("drop table **");
    context.deleteDatabase("**");
    db.close();
    在oncreate里加上建表语句。
    下次运行调用onCreate()
      

  3.   

    这个知道,不过要怎么改version呢?
      

  4.   

    1L正解。你把表结构的修改、创建新表放到onUpgrade,然后改变你数据库的版本。onUpgrade方法就会被自动调用了。
      

  5.   

    public DbHelper (Context c, String name, CursorFactory f, int v)  参数里的v就是数据库的version,可以指定的,