继我之前关于表格的问题之后,我试图在Android上的数据库中创建其他表格。
基本上,我希望创建一个数据库,这个代码由以下代码完成:
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
}
然后,当用户添加帐户时,我希望添加一个用户输入帐户名称的表格。我尝试调用我创建的createTable()方法。
public void createAccount(String account) {
DATABASE_TABLE = account;
db.execSQL(TABLE_CREATE);
System.out.println(DATABASE_NAME);
}
但是db不起作用,因为eclipse无法找到变量。我尝试mDb这是我的SQLiteDatabase,但我得到一个空指针异常。
的 的 *编辑*
我真的无法理解数据库。我正在使用For Dummies书籍和数据库助手,但是从现在开始我觉得很多代码都是在幕后完成的,很难理解。
这是我的数据库类的一部分:
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
System.out.println(DATABASE_TABLE);
db.execSQL(TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
public void createAccount(String account) {
DATABASE_TABLE = account;
/* SQLiteDatabase db = this.getWritableDatabase();
db.execSQL("create table long ("
+ KEY_ROWID + " integer primary key autoincrement, "
+ KEY_DESCRIPTION + " text not null, "
+ KEY_DEBIT + " text not null);");
}
}
在课程的最底层我有
public void changeDatabase(String account) {
DATABASE_TABLE = account;
mDbHelper.createAccount(account);
}
从我的createAccount类调用。
我收到零点异常。
答案 0 :(得分:0)
这是没有看到你的代码......
我猜你已从一个SQLite类继承/扩展。
您将看到如何实现onCreate()并将数据库作为参数提供,
如果您创建一个新函数,就像createAccount函数一样,您需要获取db的句柄,如下所示: -
public void createAccount(String account) {
DATABASE_TABLE = account;
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL(TABLE_CREATE);
System.out.println(DATABASE_NAME);
}