android - 如何在 sqlite 中找到我的 .db 文件?

标签 android sqlite ddms

我创建了一个名为“enigmeDB”的数据库和一个表“table_enigme”:

public class EnigmeDatabase extends SQLiteOpenHelper {
    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "enigmeBD";
    private static final String TABLE_ENIGME = "table_enigme";

    // fields 
    private static final String KEY_ID = "id";
    private static final String KEY_DESCRIPTION = "description";
    private static final String KEY_REPONSE="reponse";
    private static final String KEY_CATEGORIE="categorie";      

    public EnigmeDatabase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    // creation of the table
    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_ENIGME_TABLE = 
            "CREATE TABLE " + TABLE_ENIGME
            + "("
            + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," 
            + KEY_DESCRIPTION + " TEXT,"
            + KEY_REPONSE + " TEXT,"
            + KEY_CATEGORIE + "TEXT"
            + ")";
        db.execSQL(CREATE_ENIGME_TABLE);    
    }

    // Update
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_ENIGME);
                onCreate(db);
    }....

当我打开 DDMS 透视图并打开文件资源管理器时:/data/data/com.android.enigme(我的包)我找到了“enigmeDB”,但没有找到“table_enigme”。

enter image description here

虽然在 Sqlite 数据库浏览器中我的表看起来是空的:

enter image description here


我从 Activity 插入数据,这是我的类(class):

公共(public)类 EnigmeActivity 扩展 Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    //recuperation des champs depuis main.xml
    final EditText description=(EditText) this.findViewById(R.id.description);
    final EditText reponse=(EditText)this.findViewById(R.id.reponse);
    final EditText categorie=(EditText)this.findViewById(R.id.categorie);
    Button ajouter = (Button)this.findViewById(R.id.ajouter);


   final EnigmeDatabase db=new EnigmeDatabase(this);


    ajouter.setOnClickListener(new OnClickListener() {


        public void onClick(View v) {
            Log.d("Etape : " , "Recuperation");
            Log.i("description : ", description.getText().toString());
            Log.i("reponse : ", reponse.getText().toString());
            Log.i("categorie : ", categorie.getText().toString());
            //add a new Enigme
            Log.d("Etape : ","Insertion" );
            db.ajouterEnigme(new EnigmeBean(description.getText().toString(),reponse.getText().toString(),categorie.getText().toString()));      
            Toast.makeText(EnigmeActivity.this, "Ajout avec succes!", Toast.LENGTH_SHORT).show();

        }

        });


}

最佳答案

这是一个包含所有表的数据库文件。

您已像在上一张图片中一样打开它,并且列名称在您创建它们时存在。

它是“空”的原因是因为里面没有数据。

您需要用数据填充表格。

关于android - 如何在 sqlite 中找到我的 .db 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11483992/

相关文章:

android - 使用 PubNub 的 SDK 和 API 在 Android 上与 WebRTC 进行视频聊天

java - 通过扩展 BaseActivites 来划分职责是不好的做法吗?

javascript - ReferenceError : Set is not defined. 在 Ionic 应用程序中使用 Set 数据结构时出错

c# - C#中如何继承System.Data.SQLite

android - 为什么 eclipse ADT 无法在 Windows 上识别我的 android 设备?

android - Eclipse DDMS 不显示 SD 卡的内容

android - 通过 Facebook 应用程序打开 Facebook 页面

multithreading - SQLite 的性能不佳,大量的写入导致很少的读取爬行

multithreading - 具有不同文件的多个线程之间的 Sqlite 死锁

android - 无法使用 Nexus One 访问 DDMS 文件资源管理器中的数据文件夹!