2012-11-11 3 views
0

"openOrCreateDatabase"를 사용하여 SQLLite 데이터베이스를 만들고 싶습니다. 문제는 새 테이블을 만드는 동안 오류가 발생한다는 것입니다.Android APP 데이터베이스 연결

< 허가 그룹의 안드로이드 : 이름 = "android.permission-group.STORAGE"나는 매니페스트의 2 개 라인을 추가

public class MainActivity extends Activity {

EditText playerName; 
Button submitPlayer; 
SQLiteDatabase myDB = null; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.activity_main); 

    playerName = (EditText)findViewById(R.id.playerName); 
    submitPlayer = (Button)findViewById(R.id.submitPlayer); 


     myDB = SQLiteDatabase.openOrCreateDatabase("/data/data/com.my.appname/mydb.db",null);   
    try{   

     myDB.execSQL("CREATE TABLE IF NOT EXISTS player (playername VARCHAR)");   
     myDB.execSQL("INSERT INTO player VALUES('test')"); 

... ..

:

11-11 12:36:39.865: E/AndroidRuntime(1520): java.lang.IllegalStateException: 
database not open 

내 코드입니다 >

< 사용 권한 android : permission = "android.permission.WRITE_EXTERNAL_STORAGE"/>

뭐가 잘못 되었나요?

고맙습니다.

답변

2

이와 같이 데이터베이스에 액세스하면 안됩니다. 또한/data/data에 대한 저장 권한이 필요하지 않습니다. 이는 sdcard 용입니다. 당신이해야 할 일은 SQLiteOpenHelper를 사용하여 db를 관리하는 것입니다. 여기에 tutorial이 있습니다.

+0

고마워요! 나는이 튜토리얼을 시도 할 것이다. :) – user1682793