2013-03-18 34 views
0

我想开发Android应用程序(第一次),所以我使用SQLite来存储数据。但每次运行应用程序时,所有数据都是空的!我认为问题在于,当我运行应用程序时,它重新创建了所有表格,并且它们以新的空表格的形式出现!如何长时间在android中存储数据?

任何人都可以帮助或举例说明如何检查表是否已经创建,如果是,请复制数据,如果没有创建,那意味着它是第一次! 如何使用SQLite长时间存储数据?如果我不能说什么是存储数据的最佳方式?

 //food 
     private static final String food= "food"; 
     //---- columns ----- 
     private static final String fid = "fid"; 
     private static final String fname= "fname"; 
     private static final String category = "category"; 
     private static final String quantity= "quantity"; 
     private static final String unit= "unit"; 
     private static final String carbs= "carbs"; 

     //food 
      private static final String DATABASE_CREATE_Food="CREATE TABLE " 
     +food+" ("+fid 
     + " INTEGER PRIMARY KEY AUTOINCREMENT , " 
     +fname+ " TEXT NOT NULL, " 
     +category+" TEXT Not NULL, " 
     +quantity+" Double Not Null, " 
     +carbs+" Integer NOT NULL, " 
     +unit+" TEXT NOT NULL" 
     +");"; 



public void onCreate(SQLiteDatabase database) { 
     database.execSQL(DATABASE_CREATE_Food); 

    } 
    /** Called when the DATABASE_VERSION is changed to higher version */ 
    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     Log.w(MyAppDB.class.getName(), 
       "Upgrading database from version " + oldVersion + " to " 
         + newVersion + ", which will destroy all old data"); 

     db.execSQL("DROP TABLE IF EXISTS" + food); 

     onCreate(db); 
    } 
+3

该表不应该被每一次重建。你应该发布你的代码,这样可以确定娱乐的原因。 – 2013-03-18 00:11:21

回答

0

有很多方法可以在android中存储数据,SQLite就是其中之一。
您的代码可能有问题,因为每次启动应用程序时它都不应该为空。在这里发布你的代码,以便有人可以找出它的错误。

其他方式来存储数据在Android中,从developer.android网站看看这个链接
http://developer.android.com/guide/topics/data/data-storage.html

+0

感谢您的帮助..但有人告诉我不能使用SQLite长时间存储数据?另外我希望数据在本地设备中“不需要互联网”!你能建议任何种类的数据库必须或黄油用户? – jory 2013-03-18 09:52:06