Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中删除SQLite数据库_Android_Database_Sqlite - Fatal编程技术网

在Android中删除SQLite数据库

在Android中删除SQLite数据库,android,database,sqlite,Android,Database,Sqlite,各位好, 我已经建立了一个示例应用程序,它从用户那里获取输入并将其保存在数据库的一个表中。我已经为我的应用程序创建了自己的数据库并将数据保存在其中。一切似乎都很好。前几天,我启动了EclipseIDE并开始运行我的应用程序。我无法在我的应用程序中看到任何数据 当我在文件资源管理器(DDMS)中看到时,并没有数据库(我的数据库、表、其中的数据—所有东西都丢失了)。我听说SQLite数据库是持久的。我使用通用语法创建数据库和表。请任何人告诉我为什么会发生这种情况 这是我的MainActivity.j

各位好,

我已经建立了一个示例应用程序,它从用户那里获取输入并将其保存在数据库的一个表中。我已经为我的应用程序创建了自己的数据库并将数据保存在其中。一切似乎都很好。前几天,我启动了EclipseIDE并开始运行我的应用程序。我无法在我的应用程序中看到任何数据

当我在文件资源管理器(DDMS)中看到时,并没有数据库(我的数据库、表、其中的数据—所有东西都丢失了)。我听说SQLite数据库是持久的。我使用通用语法创建数据库和表。请任何人告诉我为什么会发生这种情况

这是我的MainActivity.java

  public class MainActivity extends Activity {

public final android.content.Context Context = MainActivity.this;
public String ReadingMode = "";
public String Value = "";
public String DialogStatus = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);     

    Button saveWaterReadingToDB = (Button) findViewById(R.id.saveReading);
    saveWaterReadingToDB.setOnClickListener(new View.OnClickListener() {


        @Override
        public void onClick(View v) {

            final String TABLE_NAME = "WaterElectricity";
            String COLUMN_NAME_READING_ID = "_Id";
            String COLUMN_NAME_READING_MODE = "ReadingMode";
            String COLUMN_NAME_PASTDATETIME = "StartDateTime";
            String COLUMN_NAME_READINGVALUE = "ReadingValue";


            final SQLiteDatabase DB = Context.openOrCreateDatabase(
                    "WaterElectricityReadingDataBase.db",
                    MODE_WORLD_READABLE, null);

            final String CREATE_TABLE = "create table if not exists "
                    + TABLE_NAME + " (" + COLUMN_NAME_READING_ID
                    + " integer primary key autoincrement,"
                    + COLUMN_NAME_READING_MODE + " text not null,"
                    + COLUMN_NAME_PASTDATETIME + " date not null, "
                    + "EndDateTime date not null, "
                    + COLUMN_NAME_READINGVALUE + " integer not null" + ");";

             DB.execSQL(CREATE_TABLE);
                         }
        }); 

       }

谢谢。

每次还原/重新运行仿真器时,所有数据库都可能被删除

关闭eclipse与数据库删除无关,因为它都保存在模拟器目录中

模拟器数据库实际上存储在一块虚拟内存中。要查看此内容(在windows中),请转到username/.android/avd,您将看到所有avd都设置为目录(包含与该仿真器相关的所有文件)

确保未选中此选项:

包含文件的文件路径:

SD卡img文件(包含实际数据库)?:
这只是我有根据地猜测哪个文件是真正的SD卡文件。有人可以随时纠正我。



这种情况经常发生吗?ddms中的数据文件夹将显示emulator和根设备的文件是。每次我开始我的日食,一切似乎都是新鲜的。我所有的数据库都被删除了。谢谢!!我检查了模拟器的启动选项。这是未经检查的。虽然未选中,但我的数据正在被擦除。还需要设置其他选项吗?用真人电话怎么办?同样的事情也发生在手机上?请给出建议。如果这种数据删除只在emulator中发生,而不是在真实的手机中发生,那就好了。