我是初学者,我这样做但我不知道如何添加另一张桌子 我该怎么做?我想在我的ussd数据库中添加Admin表。
这是我的代码。
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "ussd.db";
public static final String TABLE_NAME = "offre_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "CODE";
public static final String COL_3 = "NAME";
public static final String COL_4 = "USSD";
public static final String COL_5 = "SMS";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
SQLiteDatabase db = this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(" create table " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT,CODE INTEGER,NAME TEXT,USSD TEXT,SMS TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME);
onCreate(db);
}
public boolean insertData(String code, String name, String ussd, String sms){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2,code);
contentValues.put(COL_3,name);
contentValues.put(COL_4,ussd);
contentValues.put(COL_5,sms);
long result = db.insert(TABLE_NAME,null,contentValues);
if (result == -1) {
return false;
} else {
return true;
}
}
public Cursor getAllData() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("select * from " + TABLE_NAME,null);
return res;
}
}
答案 0 :(得分:0)
只需处理onCreate
方法中所有表格的创建,以及onUpgrade
中相应的更新或删除和重新创建。
请记住卸载并重新安装您的应用以进行测试,或者增加数据库版本(DatabaseHelper
构造函数中的" 1")。否则,您的预先存在的数据库将不会使用新表进行更新,因为系统会检查是否更新了查看版本号,而不是结构。
你还应该使用你在创建语句中定义的常量,我看到你重复了它们。所以:
db.execSQL(" create table " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT,CODE INTEGER,NAME TEXT,USSD TEXT,SMS TEXT)");
变为:
db.execSQL(" create table " + TABLE_NAME + "(" + COL_1 + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_2 + " INTEGER, " + COL_3 + " TEXT, " + COL_4 + " TEXT, " + COL_5 + " TEXT)");
答案 1 :(得分:0)
您可以在onCreate()
方法中添加另一个表:
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(" create table " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT,CODE INTEGER,NAME TEXT,USSD TEXT,SMS TEXT)");
db.execSQL(//SQL to create second table//);
}