SQLite数据库在Android中被删除

时间:2013-03-13 07:07:47

标签: android database sqlite

大家好,

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

当我在文件资源管理器(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);
                         }
        }); 

       }

感谢。

1 个答案:

答案 0 :(得分:2)

每次还原/重新运行模拟器时,都可能会删除所有数据库。

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

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

确保未选中此项:

Make sure this is unchecked

带文件的文件路径:

File Path with Files

SD卡img文件(包含实际的数据库)?:


这只是我对有关哪个文件是实际的SD卡文件的有根据的猜测。有人可以随意纠正我。


enter image description here