2014-01-17 66 views
0

我已經創建了一個從SQLiteOpenHelper擴展的DatabaseHandler類。我在另一個項目中使用了相同的類,並且它工作得很好,但是當我將它導入到當前項目的目錄中時,它無法正常工作。它甚至不創建數據庫。以下是創建數據庫和表的方法。無法創建數據庫android

private static final int DATABASE_VERSION = 1; 

// Database Name 
private static final String DATABASE_NAME = "mydatabase.db"; 

// Contacts table name 
private static final String TABLE_WORDS = "words"; 
private static final String TABLE_SETS = "sets"; 
// Contacts Table Columns names 
private static final String KEY_ID = "id"; 
private static final String KEY_WORD = "word"; 
private static final String KEY_DEFINITION = "definition"; 
private static final String KEY_WORDS_SET_ID = "wordssetid"; 

private static final String KEY_SET_NAME = "setname"; 
private static final String KEY_SET_ID = "setid"; 



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

// Creating Tables 
@Override 
public void onCreate(SQLiteDatabase db) { 

    String createWordTable = 
      "CREATE TABLE IF NOT EXISTS " + TABLE_WORDS+ "(" 
      + KEY_ID + " INTEGER PRIMARY KEY," 
      + KEY_WORD + " TEXT," 
      + KEY_DEFINITION + " TEXT," 
      + KEY_WORDS_SET_ID+" INTEGER) "; 
    String createSetTable = 
      "CREATE TABLE "+TABLE_SETS+"(" 
      +KEY_SET_ID+ " INTEGER PRIMARY KEY, " 
      +KEY_SET_NAME+ " TEXT) "; 
    db.execSQL(createWordTable); 
    db.execSQL(createSetTable); 
    db.close(); 
} 

創建和Activity類

private DatabaseHandler dbHandler; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_browse_sets); 
    //... 
    //... 
      //... 
    dbHandler = new DatabaseHandler (this); 

} 

我做的其他項目同樣的事情,使用對象,但現在它行的事工作。是什麼原因 ?

+0

在logcat中的任何錯誤創建這個方法? –

+0

不,只是它不起作用 – user3199577

+1

您是否使用過dbHandler來運行查詢?數據庫將不會創建,直到你做。在onCreate()和onUpgrade()中設置斷點並進行調試,或者從這些方法中寫入日誌以查看正在運行的代碼。 – NigelK

回答

0
public DatabaseHandler(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    SQLiteDatabase db=this.getWritableDatabase(); 
    onCreate(db); 
} 

如果實在不行:

你的數據庫處理器類

public void createDB() 
{ 
    SQLiteDatabase db= this.getWritableDatabase(); 
    onCreate(db); 
} 

而在你的Activity類

DatabaseHandler dbHandler=new DatabseHandler(this); 
dbHandler.createDB(); 
+0

這個問題已經解決了,不過謝謝你的回覆 – user3199577

+0

不客氣 – Fr099y