1

当我在 android 中使用 Sqlite 数据库时

使用以下代码:

public class DBHelper extends SQLiteOpenHelper{

    public String test="";

    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        test="here11";
        // Category table create query
        String CREATE_CATEGORIES_TABLE = "CREATE TABLE " + TABLE_LABELS + " ( "+ KEY_Phone + " TEXT PRIMARY KEY, " + KEY_NAME + " TEXT, " + KEY_email + " TEXT, " + KEY_Pass + " TEXT, " + KEY_MomNum + " TEXT )";
        db.execSQL(CREATE_CATEGORIES_TABLE);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
         // Drop older table if existed
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_LABELS);
        // Create tables again
        onCreate(db);
    }
} 

我放了一个测试字符串来检查是否进入 onCreate 函数

在主课中:

DBHelper db = new DBHelper(getApplicationContext());
Toast.makeText(getApplicationContext(), db.test, Toast.LENGTH_LONG).show();

但是我显示空吐司为什么?

谢谢你。

4

2 回答 2

0

数据库创建一次,所以如果你第二次运行,它不会再次运行 onCreate 方法,因为数据库已经存在。你需要做的是增加你的数据库版本。这将调用onUpgradewhich 将再次调用onCreate并再次创建数据库。

于 2013-10-09T08:35:16.953 回答
0

您应该删除应用程序缓存并再次测试。

于 2013-10-09T08:38:08.463 回答