2013-08-20 6 views
0

Je souhaite connecter mon application à une base de données sur le téléphone Android. J'ai donc créé une classe appelée DBHelper.Erreur de connexion à la base de données SQLite Android

Mais je reçois une erreur, qui dit que "MODE_PRIVATE" ne peut pas être résolu en une variable. J'ai donc fait "Context.MODE_PRIVATE". Maintenant, la variable peut être résolu, mais je reçois une nouvelle erreur:

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

Il ne permet pas si je l'utilise DBHelper.this.openOrCreateDatabase pour l'ouvrir.

Quelqu'un peut-il m'aider?

Ceci est mon code:

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

Avez-vous essayé d'utiliser le contexte. i.e 'con.openOrCreateDatabase (" PlanB ", con.MODE_PRIVATE, null);'? –

+0

Si vous lisez la documentation, http://developer.android.com/reference/android/content/Context.html#MODE_PRIVATE, vous verrez que MODE_PRIVATE est statique. L'utilisation est donc 'Context.MODE_PRIVATE' – Simon

Répondre

0

Son meilleur vous étendez SQLiteOpenHelper dans votre classe et passer outre ses méthodes

1.onCreate - qui crée une table dans une base de données spécifiée 2.onUpdate-- habituellement utilisé pour supprimer des tables ANAD faire un updations lui .

Assurez-vous également de créer un constructeur de cette classe qui inclut l'instruction suivante: super (context, DB_NAME, null, DB_VERSION);

Chaque fois que vous déclarerez l'objet de cette classe dans votre autre classe (n'importe quelle classe de votre projet), ce constructeur créera automatiquement la base de données pour vous. Next La méthode onCreate est appelée automatiquement ce qui crée la table si elle n'existe pas. Maintenant, vous pouvez ajouter des méthodes personnalisées dans votre classe qui étend SQLiteOpenHelper pour ajouter ou supprimer des données dans la table. Ces méthodes peuvent désormais être accédées via l'objet declare dans vos autres classes.

Voici un tutoriel sur SQLiteOpenHelper.

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

J'espère que cela vous donne un petit conseil ou d'orientation.

1

Jetez un oeil à SQLiteOpenHelper que vous devriez PROLONGER quelque part si vous utilisez SQLite dans Android.

Documentation:

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.

Ceci est un database helper que vous pourriez être en mesure de trouver une certaine utilisation de.

Questions connexes