2011-02-24 52 views
3

正在使用幫助程序創建一個新的數據庫,但根據創建的文檔應在數據庫創建完成後調用,但其調用不正確。任何plz可以幫助我儘快解決這個問題。 Plz請參閱下面的代碼。創建數據庫後不會調用oncreate!

1)有沒有什麼辦法可以創建數據庫,而不是使用幫手,如果有的話,請指教! 2)什麼是回調將被稱爲在數據庫創建和殺死數據庫?

OpenHelper(Context context) 
    { 

    super(context, "examplee.db", null, 1); 
    SQLiteDatabase sqlite = null;  
     Log.w(TAG, "Openhelp database, "); 
     sqlite = context.openOrCreateDatabase("examplee.db", Context.MODE_PRIVATE, null); 
     Log.e (TAG,"SQ lite database object "+sqlite);     
    } 

public void onOpen(SQLiteDatabase db) 
{ 
    Log.e (TAG,"On open called "); 
} 


    @Override 
    public void onCreate(SQLiteDatabase db) 
    { 
     Log.w(TAG, " On create "); 
     //db.execSQL(sql); 
    //db.execSQL("CREATE TABLE " + TABLE_NAME + "(id INTEGER PRIMARY KEY, name TEXT)"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    { 
    Log.w(TAG, "Upgrading database, this will drop tables and recreate."); 
    //db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 
    //onCreate(db); 
    } 

}

由於提前,

回答

1

的SQLiteOpenHelper的javadoc說,在第一次創建數據庫時的onCreate被「之稱。這是表的地方建立和初始種羣的表應該發生。「每次應用程序出現時都不會調用它。你的情況可能是db已經創建。

要驗證數據庫是否存在,請使用adb登錄到shell,然後轉至/ data/data/<您的應用程序包名稱> /數據庫,並查看其中是否存在employees.db文件。

在onCreate方法中,通常您將創建表並加載任何初始數據。這是在安裝後第一次啓動應用程序時執行的。

+0

親愛的madhu你可以告訴我在哪裏創建一個新的數據庫? – Prasath 2011-02-24 05:15:52

0

有沒有什麼辦法可以創建數據庫,而不是使用幫手,如果有的話請教我!

是的,你可以手動在系統上使用的工具SQLite Manager或其他創建DATABSE和捆綁這sqlite db文件在您assets項目的文件夾中。當你的應用程序中運行,那麼你需要的是數據庫文件複製到該路徑/data/data/your_app_package_name/databases/

參見本:Using your own SQLite database in Android applications

什麼是回調將在數據庫中創建,並在數據庫中的殺來叫什麼名字?

當第一次創建數據庫時,會調用onCreate()方法。而且沒有辦法給kill/drop一個數據庫,而是可以刪除那個db文件。

5

下面是關於如何從模擬器中刪除數據庫文件的非常詳細的描述(在實際的android手機上調試非常相似)。

  1. 運行你的模擬器。如果您遇到問題,那麼您可以忽略此幫助信息的其餘部分!

  2. 根據您的操作系統拉起一個命令行界面。

  3. 執行命令:'adb shell'(當然省略引號)。這將帶您進入Android調試橋;你的提示會變成像一個簡單的英鎊符號。無論您的原始操作系統如何,您現在都處於簡化的unix操作系統中。

  4. 你現在在你的模擬器中。輸入命令'ls -l'來驗證你是否在根目錄下(你會看到非常像unix根目錄系統的東西)。

  5. 將目錄更改爲數據庫文件的存儲位置。假設你的程序運行在com.sillynames.myprogram5包中,並且數據庫文件被稱爲'myblackbook.db'。你會發現在該目錄中的文件:

    /data/data/com.sillynames.myprogram5/databases/myblackbook.db

  6. 一旦你在該目錄中,只需通過「RM myblackbook刪除數據庫。D b'。

希望這有助於! -scott

相關問題