当我使用插入查询时,插入的数据全部消失

时间:2014-08-06 11:13:27

标签: android database assets

public class DBExample extends SQLiteOpenHelper{ 

   public DBExample (Context context) { 

      super(context, "dbname.db", null, 1); 
      // TODO Auto-generated constructor stub 
   } 

   @Override 

   public void onCreate(SQLiteDatabase db) { 

      db.execSQL("create table if not exists tablename(" 
      + "no integer primary key" 
      + ", name text" 
      + ", ab1 text" 
      + ", ab2 text" 
      + ", ab3 text" 
      + ", type1 text" 
      + ", type2 text);"); 

   } 


   @Override 

   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

      db.execSQL("drop table tablename;"); 
      onCreate(db);
   } 



} 








// read db file in asset folder.
// this method is in other activity.

public static void copyDatabase(final Context ctx, String dbName) {

        if (ctx != null) {
            File f = ctx.getDatabasePath(dbName);

            if (f.exists()) {

                if (!f.getParentFile().exists()){
                    f.getParentFile().mkdir();
                }
                try {
                    InputStream in = ctx.getAssets().open(dbName);
                    OutputStream out = new FileOutputStream(f.getAbsolutePath());                   

                    byte[] buffer = new byte[1024];
                    int length;

                    while ((length = in.read(buffer)) > 0) {
                        out.write(buffer, 0, length);
                    }

                    in.close();
                    out.close();
                    path = f.getPath();
                    Log.i("Database copy successed! ", f.getPath());
                } catch (Exception ex) {
                    Log.e("dbError", ex.toString());
                }


            }

        }
    }

我在资产文件夹中使用xxx.db文件。 阅读没有问题。

当我使用像“插入表名值”('〜!#@!@#')的查询时;“ 并退出应用程序,插入的数据全部消失。

我希望保留插入的数据虽然终止应用,但不使用网络。 我该怎么办?

p.s:对不起,简短的英文..因为我是外国人。 :P

0 个答案:

没有答案