我想在数据库中一次性建立多个表,可是为什么只能建立第一个,运行到第二个的时候程序就强退呢?
public class DatabaseHelper extends SQLiteOpenHelper{
public DatabaseHelper(Context context, String name, CursorFactory factory,
int version) {
//必须通过super调用父类当中的构造函数
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table  table1 (name varchar(20),pw varchar(20))");
db.execSQL("create table  table2(id int,a long,b  long,c long)");
db.execSQL("create table  table3(id int,a long,b  long,c long)");
db.execSQL("create table  table4(id int,a long,b  long,c long)");
        db.execSQL("create table  table5(id int,a long,b  long,c long)");
        db.execSQL("create table  table6(id int,a long,b  long,c long)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}

解决方案 »

  1.   

    亲,你的sql语句写的有些问题...
      

  2.   

    sqlite有long类型吗?建议看下sqlite支持的数据类型
      

  3.   

    你可以在adb shell里使用SQLITE3语句创建看行不行
      

  4.   

    看来没有一个人 懂真正原因,其实是因为每创建一次要写独立 的 execSQL 不然就不行,要不就开始事务试试
      

  5.   

    int要写成integer,建议楼主以后遇到sql的问题,先找一个sql ide。去里面测试一下你的sql,这样就不会再遇到问题了,而且这样工作效率会高一些
      

  6.   

    我之前也遇见过这个问题,改下int型就可以了。