2013-08-20 5 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

Вы пытались использовать контекст. i.e '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 для добавления или удаления данных в таблицу. Эти методы теперь могут быть доступны через объект declare в других классах.

Вот учебник по SQLiteOpenHelper.

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

Я надеюсь, что это дает вам небольшой намек или руководство.

1

Взгляните на SQLiteOpenHelper, как вы должны быть распространив его где-нибудь, если вы используете SQLite в Android.

Документация:

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, что вы можете быть в состоянии найти применение из.

Смежные вопросы