2011-05-02 5 views
0

안녕 모두 나는 SD 카드에서 데이터베이스에 노래 이름을 저장하고 싶습니다. 다음 코드를 사용하지만 노래 이름을 저장하지 않습니다. 그것은 잘못된 내용을 저장합니다. 내 코드는 다음과 같습니다안드로이드에있는 sd 카드에서 데이터베이스에

 final String[] proj = { MediaStore.Audio.Media._ID,MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.DISPLAY_NAME,MediaStore.Audio.Media.SIZE }; 
     Log.e("media",""+proj.length); 

     SQLiteDatabase db; 
     db = openOrCreateDatabase("TestData.db", SQLiteDatabase.CREATE_IF_NECESSARY, null); 
     db.setVersion(1); 
     db.setLocale(Locale.getDefault()); 
     db.setLockingEnabled(true); 
     final String CREATE_TABLE_COUNTRIES ="CREATE TABLE IF NOT EXISTS songs (bpm INTEGER,songname TEXT);"; 
     db.execSQL(CREATE_TABLE_COUNTRIES); 
     Log.e("media","table created"); 
     ContentValues values = new ContentValues(); 
     for(int i=0;i<proj.length;i++){ 
      values.put("bpm", 0); 
      values.put("songname", proj[i]);  
      db.insert("songs", null, values); 
     } 
     Log.e("media","insered"); 
     Cursor cx = db.rawQuery("select * from songs" , null); 
     if (cx != null) { 
     if (cx.moveToFirst()) { 
      do { int bpm=cx.getInt(0); 
        String songname =cx.getString(1); 
        Log.e("songs","bpm "+bpm+" songname "+songname); 
      }while (cx.moveToNext()); 
     } 
     } 


     db.close();   


musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,proj, null, null, null); 
     Log.e("media1",""+musiccursor); 

내 로그 고양이 출력은 다음과 같습니다

05-02 12:28:02.716: ERROR/media(957): 4 
05-02 12:28:03.156: ERROR/media(957): table created 
05-02 12:28:03.986: ERROR/media(957): insered 
05-02 12:28:03.986: ERROR/songs(957): bpm 0 songname _id 
05-02 12:28:03.986: ERROR/songs(957): bpm 0 songname _data 
05-02 12:28:03.986: ERROR/songs(957): bpm 0 songname _display_name 
05-02 12:28:03.986: ERROR/songs(957): bpm 0 songname _size 
05-02 12:28:04.026: ERROR/media1(957): [email protected] 

저를 도와주십시오.

답변

0

데이터베이스 테이블을 관리하려면 'SQLiteOpenHelper'를 사용해야합니다. 그런 다음 'getReadableDatabase()'및 'getWriteableDatabase()'함수를 사용하여 'SQLiteDatabase'를 반환합니다. 이것이 일반적인 방법입니다.

여기에서 Googles Tutorial을 확인하십시오.

관련 문제