android中怎样在sqlite中创建一个数据库然后在该数据库中创建两个表?

private static final String TAG = "DatabaseHelper";
private DatabaseHelper dbOpenHelper=null;
public DatabaseHelper(Context context) {
super(context, "test.db", null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
//1.创建第一个数据表
db.execSQL("create table tiku(id integer primary key," +
"imgsrc varchar(70)," +
"key varchar(30)," +
"keynum integer," +
"preparekey varchar(200)," +
"achievement varchar(500));");

//创建第二个数据表
db.execSQL("CREATE TABLE userinfo (userid integer primary key," +
"checkpoints integer," +
"jinbi integer," +
"buyjinbi integer);");

}
第一个数据表可以创建成功,并且可以在onCreate()方法中初始化数据,可是第二个表就创建不了?求大神指教

public class DBOpenHelper extends SQLiteOpenHelper {
private static final String DATABASENAME = "test.db"; //数据库名称
private static final int DATABASEVERSION = 1;//数据库版本,大于0

public DBOpenHelper(Context context) {
super(context, DATABASENAME, null, DATABASEVERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE person (personid integer primary key autoincrement, name varchar(20), amount integer)");//创建表 person

db.execSQL("CREATE TABLE peson2(personid integer primary key autoincrement, name varchar(20), amount integer)");//创建表 person2
}
}
这个是Android默认的数据库操作类,可以可以获得数据库操作对象,第一次使用时会调用onCreate方法,创建表格。第二次进行将不会被重复调用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
在 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("create table sunCount(id integer primary key autoincrement,conut integer)");
}
这里面创建 更新数数据库 再创建一张表 就可以了 创建表的方法 和开始一样
...........
this.helper = new SunDatabasehelper(Context);
this.db = this.helper.getWritableDatabase();
this.helper.onUpgrade(this.db, 1, 2);
........
你懂得 不解释本回答被网友采纳
第2个回答  2013-08-22
很久没碰android了,android表中第一个字段应该不能用userid吧,我没记错第一个自增长的id是不是_id啊,你改改,至于第一个为什么创建成功了我真不知道,按你这种写法第一个也挺玄乎。
第3个回答  2013-08-22
外面先套个try catch 断点调试看下Exception那里的信息是什么,发来瞧瞧,具体问题具体分析
第4个回答  2013-08-22
把varchar(*) 都改成 text 试试追问

没用啊

追答

有LOG贴出来看一下?
sql指令串不能出现一点错误,很可能就是一个符号是在中文输入法下输入的导致执行失败

相似回答