向SQLite存储数据出错怎么办?要是创建了数据库后,想添加一个默认的管理员账号及其数据,需要写在哪里呢?是数据库文件的onCreate()方法,还是登录界面的onCreate()里呢,或者主方法里?
请大家帮我看一下,下面SQL语句哪里出错了,app老是强制关闭
// DBHelper.java ---- 数据库文件
public class DBHelper extends SQLiteOpenHelper {
//声明数据库名,版本号,表名
private static final String DB_NAME = "DB_ChangShou.db";
private static final int DB_VERSION = 1;
public static final String table_Goods = "Goods";
public DBHelper(Context context) {
super(context,DB_NAME,null,DB_VERSION);//上下文,数据库名,空,版本号
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建用户购买商品数据表,_id,账号,金币,商品购买情况(0/1)-----九个商品,0代表未购买,1代表已拥有
String sql ="CREATE TABLE IF NOT EXISTS "+DBHelper.table_Goods+"(_id INTEGER PRIMARY KEY AUTOINCREMENT,account VARCHAR(20),golds INT,goods1 INT,goods2 INT,goods3 INT,goods4 INT,goods5 INT,goods6 INT,goods7 INT,goods8 INT,goods9 INT)";
db.execSQL(sql);
// 此处还创建了其他数据表,不一一赘述
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
打开应用首先是一个WelcomeActivity,然后跳转MainActivity,由MainActivity判断用户是否登录,未登录跳转LoginActivity
我想创建一个管理员账号,账号昵称密码都是admin,再创建管理员金币商品数据表
// 添加管理员金币商品数据的语句
DBHelper dbHelper = new DBHelper(this);
SQLiteDatabase dbwrite = dbHelper.getWritableDatabase();
String s = "insert into "+DBHelper.table_Goods+" (account,golds,goods1,goods2,goods3,goods4,goods5,goods6,goods7,goods8,goods9) values('admin',10000,1,1,1,1,1,1,1,1,1)";
dbwrite.execSQL(s);
插入数据的这两句无论加到LoginActivity还是WelcomeActivity都报错,问题出在哪里呢?
前面还有给其他数据表插入数据,但显示错误再添加金币商品这个数据表里