Как я могу увидеть свой файл базы данных в Android Studio при подключении к реальному устройству?

#android #sqlite #android-studio #file-io

#Android #sqlite #android-studio #file-io

Вопрос:

Моя папка с данными пуста в device monitor. Когда я помещаю базу данных во внутреннюю память, я вижу, что в sdcard0 я могу получить доступ к этому файлу, но не могу записать более одной строки. ~ Я новичок в Android ~. Это мой код,

  public static final String Query="CREATE TABLE " UserConstruct.newUserinfo.TableName " (" UserConstruct.newUserinfo.UserName " TEXT, " UserConstruct.newUserinfo.Password " TEXT," 
                UserConstruct.newUserinfo.FName " TEXT, " UserConstruct.newUserinfo.LName " TEXT," UserConstruct.newUserinfo.ACode " TEXT," UserConstruct.newUserinfo.AEmail " TEXT);";



   public DatabaseHelper(Context context)
    {
        super(context,DatabaseName,null,DatabaseVersion);
        Log.e("Database operation","created or opened");

    }
    @Override
    public void onCreate(SQLiteDatabase db)
    {
        db.execSQL(Query);
        Log.e("Created","Table Created");
        File f=new File("/data/data/com.example.future.buildingmonitoringsystem/databases/ptl2_DB.db");
        FileInputStream fis=null;
        FileOutputStream fos=null;

        try
        {
            fis=new FileInputStream(f);
            fos=new FileOutputStream("/mnt/sdcard/ptl2_DB.db");
            while(true)
            {
                int i=fis.read();
                if(i!=-1)
                {fos.write(i);}
                else
                {break;}
            }
            fos.flush();


code for insertion in main class:
   String UserName="admin"
   Password = "password";
         String FName="abc";
         String LName="abc";
         String ACode="1234";
         String AEmail="sjn@gmail.com";
         String TableName="htl_portal_user";

        dbhelper=new DatabaseHelper(context);
        sqlitedatabase=dbhelper.getWritableDatabase();
        dbhelper.insert( UserName,Password,FName,LName,ACode,AEmail,sqlitedatabase);
        Toast.makeText(getBaseContext(),"Data inserted",Toast.LENGTH_LONG).show();
        dbhelper.close();
  

Комментарии:

1. Не могу записать более 1 строки? Каков ваш подход? Где находится код, который вы пытались выполнить? Скоро это будет отклонено.

2. Внедрено ли ваше устройство?

3. устройство не укоренено.

4. Пожалуйста, опубликуйте свой код, в котором вы вставляете данные в свою БД

Ответ №1:

В настоящее время невозможно просмотреть ваш файл базы данных в Android Studio. Вам нужно будет выполнить следующие шаги :

1. Создайте файл базы данных Sqlite в своем приложении программно

2. Экспортируйте его на свой компьютер — он будет иметь расширение файла .sqlite

3.To откройте этот файл, вам нужен плагин Mozilla — SQLite Manager — Добавьте этот плагин в свой браузер Mozilla

4. Теперь вы можете открыть экспортированный файл в SQLite Manager — вы даже можете выполнять многие функции базы данных в SQLite Manager.

Чтобы экспортировать файл базы данных на вашем устройстве Android, выполните следующий код:

 export.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                File f=new File("/data/data/YOUR_PACKAGE_NAME/databases/YOUR_DATABASE_NAME");
                FileInputStream fis=null;
                FileOutputStream fos=null;

                try
                {
                    fis=new FileInputStream(f);
                    fos=new FileOutputStream("/mnt/sdcard/DATABAASE_.db");
                    while(true)
                    {
                        int i=fis.read();
                        if(i!=-1)
                        {fos.write(i);}
                        else
                        {break;}
                    }
                    fos.flush();
                    Toast.makeText(getBaseContext(), "Database Export Successfully", Toast.LENGTH_LONG).show();

                }
                catch(Exception e)
                {
                    e.printStackTrace();
                    Toast.makeText(getBaseContext(), "DB dump ERROR", Toast.LENGTH_LONG).show();
                }
            }
        });
  

Комментарии:

1. Я сделал это, и файл db я вижу на своей SD-карте. И проблема в том, что когда я попытался получить доступ к данным после вставки второй строки, приложение зависает, а затем закрывается. [если есть только одна строка, я могу получить к ней доступ.]

Ответ №2:

Вы не можете видеть базу данных, если используете реальное устройство. Если вы хотите увидеть базу данных, вы должны экспортировать базу данных.

Код для экспорта базы данных находится здесь с :

 btnexport.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                File f=new File("/data/data/YOUR_PACKAGE_NAME/databases/YOUR_DATABASE_NAME");
                FileInputStream fis=null;
                FileOutputStream fos=null;

                try
                {
                    fis=new FileInputStream(f);
                    fos=new FileOutputStream("/mnt/sdcard/DATABAASE_.db");
                    while(true)
                    {
                        int i=fis.read();
                        if(i!=-1)
                        {fos.write(i);}
                        else
                        {break;}
                    }
                    fos.flush();
                    Toast.makeText(getBaseContext(), "Database Export Successfully", Toast.LENGTH_LONG).show();

                }
                catch(Exception e)
                {
                    e.printStackTrace();
                    Toast.makeText(getBaseContext(), "DB dump ERROR", Toast.LENGTH_LONG).show();
                }
            }
        });
  

Комментарии:

1. Сделал это, и теперь я могу видеть БД на своей SD-карте. Я могу написать одну строку, а также получить к ней доступ. И проблема в том, что не удается получить доступ к БД после вставки второй строки. Когда я пытался использовать это приложение, оно зависало и останавливалось.

2. В мой вопрос добавлен код.