public class DbObject {
 
 Context mContext;
 SQLiteDatabase _DB = null;
 private ArrayList<HashMap<String, String>> _DataSource= new ArrayList<HashMap<String, String>>();
 public BaseAdapter adapter;
  
 public DbObject(Context context) {
  super();
  mContext = context;
    
  openDatabase();
   
  
   String[] from = new String[]{"name", "city", "location"};
   int[] to = new int[] {R.id.txt1, R.id.txt2 , R.id.txt3};
      
   adapter = new SimpleAdapter(mContext,
    _DataSource,
     R.layout.list_row,
     from, 
     to);
        
   Refresh();
   }
 
 public void openDatabase() 
 {
  _DB = mContext.openOrCreateDatabase("gp.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
  
 }
 
 public void Refresh() {
  
  Cursor _Cursor = _DB.rawQuery("select * from gp", null);
  
  if(_Cursor.moveToFirst()) { // 커서의 첫번째 부터 검색
   do {
    HashMap<String, String> _Item = new HashMap<String, String>(); // 해쉬맵 선언
    _Item.put("name", _Cursor.getString(0).toString()); // 컬럼이름 , getString(0)첫번째 컬럼(String형으로 변환)
    _Item.put("city", _Cursor.getString(1).toString()); // 컬럼이름 , getString(0)첫번째 컬럼(String형으로 변환)
    _Item.put("location", _Cursor.getString(2).toString()); // 컬럼이름 , getString(0)첫번째 컬럼(String형으로 변환)
    _DataSource.add(_Item);
    
    
   } while(_Cursor.moveToNext()); // 다음컬럼 검색
   
   adapter.notifyDataSetChanged();
  }
  
 }
 
 
}


db파일을 가져와서 연동을 시킬려고하는데 계속 Refresh()에서 gp table을 찾을수 없다고 나옵니다.. 연동이 안되고있는건가요??ㅜㅜ

 

 try {
   File folder = new File("/data/data/com.exam.Dbtest2/databases/");
   folder.mkdirs();
    File outfile = new File("data/data/com.exam.Dbtest2/databases/gp.db");
    outfile.createNewFile();
    
    AssetManager assetManager = getResources().getAssets();
    InputStream is;
   
   is = assetManager.open("databases/gp.db", AssetManager.ACCESS_BUFFER);
    long filesize = is.available();
    
    if(outfile.length() < filesize) {
     byte[] tempdata = new byte[(int) filesize];
     is.read(tempdata);
     is.close();
     outfile.createNewFile();
     FileOutputStream fo = new FileOutputStream(outfile);
     fo.write(tempdata);
     fo.close();
     
    }  
  }catch (IOException e) {
   e.printStackTrace();
  }
             
        
    }

이건 리스트뷰가 있는 액티비티에서 추가시킨 인터넷에서 찾은 db파일 연동하는 소스라고해서 붙여넣었습니다..

 

 

 

 Caused by: android.database.sqlite.SQLiteException: no such table: gp: , while compiling: select * from gp
 at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
 at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
 at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
 at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
 at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:46)
 at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
 at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
 at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
 at com.exam.Dbtest2.DbObject.Refresh(DbObject.java:56)
 at com.exam.Dbtest2.DbObject.<init>(DbObject.java:41)
 at com.exam.Dbtest2.dbtest.onCreate(dbtest.java:27)
 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
  ... 11 more

 

로그캣입니다.

 

초보라서 책따라 공부하고있는데 개인적으로 DB를 불러와서 리스트뷰에 뿌려주는걸 하고 싶은데

 

아무리 찾아봐도 원하는걸 찾을 수 없어서 여기저기 짜집기로 찾아서 하고있는데 왜 에러가 나는지를 모르겠네요..ㅠㅠ