2012-11-15 56 views
0

我在這裏經歷了許多示例,但都顯得複雜,其中大部分都是針對大數據。我對Android和SQL都很陌生。我想要做的只是用一些數據預填充我的SQL數據庫。使用一些預先填充的數據創建Android SQL數據庫

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("CREATE TABLE restaurants (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, address TEXT, type TEXT, notes TEXT, feed TEXT, lat REAL, lon REAL);"); 

    ContentValues cv=new ContentValues(); 
    cv.put("name", "Hi"); 
    cv.put("address", "There"); 
    cv.put("type", "delivery"); 
    cv.put("notes", ""); 
    cv.put("feed", ""); 
    cv.put("lat", ""); 
    cv.put("lon", ""); 
    getWritableDatabase().insert("restaurants", "name", cv); 
} 

沒有錯誤,但不幸的是沒有插入任何數據。這應該很簡單,請幫助我?

回答

1

你的方法很好,在SQLiteOpenHelper#onCreate()的內部是放置初始數據的正確位置,因爲這是你創建數據庫所處的狀態。

但是在onCreate裏面,您直接使用db.insert("restaurants", "name", cv)。您尚未完成創建您嘗試通過getWritableDatabase()在那一刻獲得的可寫數據庫。不知道這是否是問題,但它可能是。

+0

我試圖直接使用db.insert(「餐館」,「名稱」,CV),沒有錯誤,但仍然沒有插入數據。任何其他建議,我可以嘗試? TQ。 – miskoL

+0

對不起,它工作,我清除並刪除了仿真器上的應用程序,再次重新啓動,數據在那裏。謝謝! – miskoL

+0

是的,只有在數據庫文件不存在時才執行'onCreate'。一旦它完成,你只需重新安裝/更新你的應用程序'SQLiteOpenHelper'假定現有文件被正確創建。你可以使用'onUpgrade'機制,你想稍後改變數據庫狀態。 – zapl

2

使用db.insert(「restaurants」,「name」,cv);

+0

我試圖直接使用db.insert(「餐館」,「名稱」,簡歷),沒有錯誤,但仍然沒有插入數據。任何其他建議,我可以嘗試? TQ。 – miskoL

+0

對不起,它工作,我清除並刪除仿真器上的應用程序,再次重新啓動,數據在那裏。謝謝! – miskoL

+0

它好的夥伴..高興地幫助你:) –

相關問題