2013-08-20 233 views
0

我想將我的應用程序連接到Android手機上的數據庫,所以我寫了一個名爲DBHelper的類。Android SQLite數據庫連接錯誤

但我得到一個錯誤,其中說「MODE_PRIVATE」不能解析爲變量。所以我做了「Context.MODE_PRIVATE」。現在,變量就可以解決,但我得到一個新的錯誤:

"The method openOrCreateDatabase(String, int, null) is undefinded for the Type DBHelper".

它沒有幫助,如果我使用DBHelper.this.openOrCreateDatabase打開它。

任何人都可以幫助我嗎?

這是我的代碼:

public class DBHelper { 

    SQLiteDatabase db; 

    public void insert(String news, Context con){ 

     db = openOrCreateDatabase("PlanB", con.MODE_PRIVATE, null); 
     db.execSQL("DROP TABLE IF EXISTS News"); 
     db.execSQL("CREATE TABLE IF NOT EXISTS INBOX(id INTEGER,title VARCHAR,text VARCHAR,date VARCHAR);"); 

     String[] divided = news.split("/newentry/"); 
     int length = divided.length; 
     int pos = 0; 

     while(pos <= length){ 
      String[] entry = divided[pos].split("/;/"); 
      db.execSQL("INSERT INTO INBOX VALUES('"+entry[0]+"','"+entry[1]+"','"+entry[2]+"','"+entry[3]+"');"); 
      pos++; 
     } 

    db.close(); 
    } 
} 
+1

您是否嘗試使用上下文。即'con.openOrCreateDatabase(「PlanB」,con.MODE_PRIVATE,null);'? –

+0

如果你閱讀文檔,http://developer.android.com/reference/android/content/Context.html#MODE_PRIVATE,你會看到MODE_PRIVATE是靜態的。因此用法是'Context.MODE_PRIVATE' – Simon

回答

0

其更好地在您的類擴展SQLiteOpenHelper並覆蓋其方法

1.onCreate - 這在一個指定的數據庫 2.onUpdate--通常用來刪除表創建一個表ANAD作出updations它。

此外請確保您創建該類的構造函數,其中包括以下語句 super(context,DB_NAME,null,DB_VERSION);

每當你將宣佈這個類的對象在另一個類(項目中的任何類)這個構造將自動爲您創建數據庫。接下來onCreate方法會自動調用,如果它不存在,將創建該表。 現在您可以在您的類中添加自定義方法,該方法擴展了SQLiteOpenHelper以向表中添加或刪除數據。 現在可以通過其他類中的對象聲明來接受這些方法。

這是關於SQLiteOpenHelper的教程。

http://www.vogella.com/articles/AndroidSQLite/article.html

我希望這給你一個小提示或指導。

1

SQLiteOpenHelper看看,如果你是在Android中使用SQLite,你應該在什麼地方擴展它。

文檔:

A helper class to manage database creation and version management.

You create a subclass implementing onCreate(SQLiteDatabase), onUpgrade(SQLiteDatabase, int, int) and optionally onOpen(SQLiteDatabase), and this class takes care of opening the database if it exists, creating it if it does not, and upgrading it as necessary. Transactions are used to make sure the database is always in a sensible state.

這是一個database helper,你或許可以找到一些使用了。