2012-08-03 4 views
1

나는 안드로이드에 내 기존 sqlite 데이터베이스를 사용하는 데 도움이 필요합니다.안드로이드 프로젝트의 자산 폴더에서 sqlite 데이터베이스에 액세스하는 방법은 무엇입니까?

"/ assets/(mydatabase)"에 sqlite 데이터베이스를 배치하고 있지만 사용할 수 없습니다.

다음 코드를 사용하고 있습니다. "데이터베이스를 열 수 없습니다"오류가 표시되고 "테이블을 찾을 수 없습니다."와 같은 오류가 표시되는 경우가 있습니다. 내가 데이터베이스 파일을 ddms에서 꺼내고 sqlite 브라우저를 사용하여 열면 내 테이블이 없어져서 내 테이블이 더 이상 존재하지 않는다는 것을 의미합니다.

그래서 내가 읽기 및 라이트 작업을 위해 안드로이드에 내 기존 sqlite 데이터베이스를 사용할 수있는 방법을 얻도록 도와주세요.

private SQLiteDatabase MyDataBase; 
private String path="/data/data/mypackagename/mydatabase"; 
try{ 
     MyDataBase=SQLiteDatabase.openDatabase(path, null,SQLiteDatabase.OPEN_READWRITE); 
     Cursor myDbCursor; 
     myDbCursor=MyDataBase.rawQuery("select user,password from login_master", null); 
     String username=myDbCursor.getString(0); 
     String password=myDbCursor.getString(01); 
     Toast.makeText(getBaseContext(), username, 10).show(); 
     Toast.makeText(getBaseContext(), password, 10).show(); 
     MyDataBase.close(); 
    } 
    catch(SQLiteException e){ 
     Toast.makeText(getBaseContext(), e.getMessage(), 10).show(); 
    } 
+0

감사 pinakin 문제를했고, u는이 정말 Hardik 작동 – samir

답변

1

확인 그러나 이것은 당신에게 도움이 될 수 없습니다

void checkDB() throws Exception { 
    try { 
     SQLiteDatabase dbe = SQLiteDatabase 
       .openDatabase(
         "/data/data/yourpackagename/databases/yourfilename.sqlite", 
         null, 0); 
     Log.d("opendb", "EXIST"); 
     dbe.close(); 
    } catch (Exception e) { 

     AssetManager am = getApplicationContext().getAssets(); 
     OutputStream os = new FileOutputStream(
       "/data/data/yourpackagename/databases/yourfilename.sqlite"); 
     byte[] b = new byte[100]; 

     int r; 
     InputStream is = am.open("yourfilename.sqlite"); 
     while ((r = is.read(b)) != -1) { 
      os.write(b, 0, r); 
     } 
     Log.i("DATABASE_HELPER", "Copying the database "); 
     is.close(); 
     os.close(); 
    } 

} 
+0

을 :)이 게시물 일을 도왔다. 내 코드에서 부분을 복사하지 못했습니다. 감사합니다. –

+0

귀하의 신청서에 대해 환영합니다. 행운을 빕니다. –

관련 문제