2012-11-11 38 views
0

我想用「openOrCreateDatabase」創建一個SQLLite數據庫。問題是,我在創建新表時遇到錯誤。Android APP數據庫連接

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

這是我的代碼:

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')"); 

... ..

我加入2-線路中的清單:

<權限組機器人:名稱= 「android.permission-group.STORAGE」 >

< uses-permission android:name =「android.permission.WRITE_EXTERNAL_STORAGE」/>

怎麼了?

非常感謝!

回答

2

你不應該像這樣訪問你的數據庫。而且你也不需要/ data/data的存儲權限,這就是sdcard。 你應該做的是使用SQLiteOpenHelper來管理你的數據庫。這裏有一個tutorial讓你開始吧

+0

非常感謝!我會嘗試這個教程。 :) – user1682793