2016-09-30 5 views
-4

デバイスモニタで自分のデータフォルダが空です。 dbを内部メモリに入れると、sdcard0でそのファイルにアクセスできますが、複数の行を書き込むことはできません。 〜は、アンドロイド〜で新しいです。これは私のコード、実際のデバイスを使用している場合は、データベースを参照することはできません実際のデバイスに接続すると、アンドロイドスタジオでデータベースファイルを確認するにはどうすればよいですか?

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="[email protected]"; 
     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(); 
+2

カントは、1行以上の書き込み:

は、次のコードに従ってください、あなたのAndroidデバイスで自分のDBファイルをエクスポートするには?あなたのアプローチは何ですか?実行しようとしたコードはどこですか?これはすぐに下落する予定です。 – Talha

+0

デバイスはルートされていますか? – Nishith

+0

デバイスがルートされていません。 – Sjn

答えて

0

です。データベースを表示するには、データベースをエクスポートする必要があります。現在、Android Studioでデータベースファイルを参照することはできません

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(); 
       } 
      } 
     }); 
+0

これを完了すると、私はsdcardのdbを見ることができます。私は1つの行を書くことができ、また私はそれにアクセスすることができます。そして、問題は、2番目の行の挿入後にDBにアクセスすることはできません。私はそのアプリをハングアップしようとしたときに停止します。 – Sjn

+0

あなたのコードをアップロードする必要があります –

+0

コードが私の質問で追加さ​​れます。 – Sjn

0

:エクスポート・データベースのための

コードとここにあります。あなたは、次の手順を実行する必要があります。

のアプリで1.CreateごSqliteをデータベースファイルをプログラム

2.Exportそれをコンピュータに - それは

3 .sqliteファイルの拡張子を持つことになります。このファイルを開くには、Mozillaプラグインが必要です。 - SQLite Manager - このプラグインをmozillaブラウザに追加してください。

4.エクスポートしたファイルをSQlite Managerで開くことができます - SQLiteマネージャで多くのデータベース機能を実行することもできます。

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(); 
       } 
      } 
     }); 
+0

私はこれを行い、私のsdcardで見ることができるdbファイルです。そして、問題は、私が2番目の行の挿入後にデータにアクセスしようとすると、アプリケーションがハングして閉じてしまうことです。 [行が1つしかない場合、私はそれにアクセスできます。] – Sjn

関連する問題