Aller au contenu

Aide BDD Local


Recommended Posts

Bonjour a tous, je suis un débutant android, et je me retrouve face a un petit problème.

J'ai voulu introduire une BDD local a mon application(un jeu) afin de stocquer le score des joueurs.

J'ai trouver un petit tuto sur le net qui explique comment crée une table avec une colonne.

Voici le code.

package whereis.apk;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteStatement;
import android.util.Log;

import java.util.ArrayList;
import java.util.List;

public class DataHelper {

  private static final String DATABASE_NAME = "example.db";
  private static final int DATABASE_VERSION = 1;
  private static final String TABLE_NAME = "table1";
  private Context context;
  private SQLiteDatabase db;

  private SQLiteStatement insertStmt;
  private static final String INSERT = "insert into " 
     + TABLE_NAME + "(name) values (?)";

  public DataHelper(Context context) {
    this.context = context;
     OpenHelper openHelper = new OpenHelper(this.context);
     db = openHelper.getWritableDatabase();
     insertStmt = db.compileStatement(INSERT);
  }

  public long insert(String name) {
     insertStmt.bindString(1, name);

     return insertStmt.executeInsert();
  }

  public void deleteAll() {
     db.delete(TABLE_NAME, null, null);
  }

  public List selectAll() {
     List list = new ArrayList();
     String[] colonnes={"name"};
     Cursor cursor = db.query(TABLE_NAME, colonnes, 
       null, null, null, null, "name desc");
     if (cursor.moveToFirst()) {
        do {
           list.add(cursor.getString(0)); 

        } while (cursor.moveToNext());
     }
     if (cursor != null && !cursor.isClosed()) {
        cursor.close();
     }
     return list;
  }



  private static class OpenHelper extends SQLiteOpenHelper {

     OpenHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
     }

     @Override
     public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + TABLE_NAME + "(id INTEGER PRIMARY KEY, name TEXT,prenom TEXT)");

     }

     @Override
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w("Example", "Upgrading database, this will drop tables and recreate.");
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
     }
  }
}

Cependant, je n'arrive pas a insérer un deuxième paramètre a la fonction insert() , ce deuxième paramètre contienterais le prenom de l'utilisateur.

Comment puis-je faire?

Lien vers le commentaire
Partager sur d’autres sites

cela devrait fonctionner

 
private static final String INSERT = "insert into " 
     + TABLE_NAME + "(name, prenom) values (?, ?)";

public long insert(String name, String prenom) {
     insertStmt.bindString(1, name);
     insertStmt.bindString(2, prenom);
     return insertStmt.executeInsert();
  }

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...