我想用SQLiteOpenHelper创建一个数据库,但我面临的一些问题

问题描述:

我创建SQLiteOpenHelper Class.Its的子类(DatabaseHelper)有一个构造函数和两个重写的方法我想用SQLiteOpenHelper创建一个数据库,但我面临的一些问题

public DatabaseHelper(Context context) { 
      super(context, dbName, null,33); 
      // TODO Auto-generated constructor stub 
     } 
public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     db.execSQL("CREATE TABLE "+ quizTable +"("+quizCol1+" INTEGER PRIMARY KEY,"+ 
       quizCol2+" TEXT,"+ quizCol3 +" TEXT,"+ quizCol4 +" INTEGER," + quizCol5 + " DATETIME)"); 

     db.execSQL("CREATE TABLE "+ questionTable +"("+questionCol1+" INTEGER PRIMARY KEY,"+ 
       questionCol2+" INTEGER,"+ questionCol3 +" TEXT,"+ questionCol4 +" TEXT," + questionCol5 + " TEXT," + 
       questionCol6 + " TEXT," + questionCol7 +" TEXT," + questionCol8 +" TEXT)"); 

     db.execSQL("CREATE TABLE "+ playedQuizzes +"("+playedQuizCol1+" INTEGER PRIMARY KEY,"+ 
       playedQuizCol2+" TEXT,"+ playedQuizCol3 +" TEXT,"+ playedQuizCol4 +" TEXT," + 
       playedQuizCol5 + " TEXT)"); 
     System.out.println("this is onCreate method"); 
     InsertQuiz(); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 
     db.execSQL("DROP TABLE IF EXISTS "+questionTable); 
     db.execSQL("DROP TABLE IF EXISTS "+playedQuizzes); 

     onCreate(db); 
    } 

在我的活动我的子类有人称上述类的使用

public void onStart(){ 
     try{ 
      super.onStart(); 
      dbHelper = new DatabaseHelper(this); 
     }catch(Exception ex){ 
      CatchError(ex.toString()); 
     }  
    } 

构造但是当我运行我的Activity类,打开我的DDMS角度来看的话,我没有找到下/数据/数据创建的任何数据库/

我的知识或我的代码有问题吗?如果是,请告诉我。

+0

请按照以下链接清除有关android数据库的概念http://hackaday.com/2010/07/21/android-development-101-part-3introduction-to-databases/ – himanshu 2012-01-17 12:18:28

SQLiteOpenHelper类的文档:

创建一个辅助对象创建,打开,和/或管理数据库。这种方法总是很快返回。数据库实际上不是 创建或打开,直到getWritableDatabase()或 getReadableDatabase()被调用。

因此,在不调用getWritableDatabase()或getReadableDatabase()之前,数据库不会被创建。

在你的代码没有打开数据库....

创建,写入或打开数据库getWritableDatabase()

或创建&打开数据库getReadableDatabase()是练琴.....