2013-08-20 238 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,你或许可以找到一些使用了。