Aller au contenu

SQLite méthode onCreate()


Recommended Posts

Bonjour chers membres de FrAndroid,

Mon problème doit certainement être tout bête, mais je n'arrive pas à le trouver... Et étant donné que c'est pour un projet d'école, je ne peux plus me permettre de perdre de temps :emo_im_foot_in_mouth: Mon projet sera une sorte de guide touristique pour la ville où j'étudie :)

Donc voilà, j'ai suivi ce tuto pour créer ma base de données... Mais une fois que je l’exécute, il me dit que la table attractions n'existe pas dans la table... Est-ce que vous pourriez m'aider et me dire ce qui cloche dans mon code? Car je suis réellement perdu...

Ici c'est mon DBAdapter.java

package com.projet.android.mons;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBAdapter {
public static final String KEY_ROWID = "_id";
public static final String KEY_NOM = "nom";
public static final String KEY_DESCRIPTION = "description";
public static final String KEY_LONGITUDE = "longitude";
public static final String KEY_LATITUDE = "latitude";
public static final String KEY_TYPE = "type";
private static final String TAG = "DBAdapter";

private static final String DATABASE_NAME = "mons";
private static final String DATABASE_TABLE = "attractions";
private static int DATABASE_VERSION = 1;

private static final String DATABASE_CREATE =
	"create table mons (_id integer primary key autoincrement, "
	+ "nom text not null, description text not null, longitude text not null, latitude text not null, "
	+ "type text not null);";

private final Context context;

private DatabaseHelper DBHelper;
private SQLiteDatabase db;

public DBAdapter(Context ctx){
	this.context = ctx;
	DBHelper = new DatabaseHelper(context);
}

private static class DatabaseHelper extends SQLiteOpenHelper{
	DatabaseHelper(Context context)
	{
		super(context, DATABASE_NAME, null, DATABASE_VERSION);
	}

	@Override
	public void onCreate(SQLiteDatabase db)
	{
		db.execSQL(DATABASE_CREATE);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
		Log.w(TAG, "Upgrading database from version " + oldVersion
				+ "to"
				+ newVersion + ", which will destroy all old data");
		db.execSQL("Drop TABLE IF EXISTS attractions");
		onCreate(db);
	}
}

// --- Pour ouvrir la base de données ---
public DBAdapter open() throws SQLException
{
	db = DBHelper.getWritableDatabase();
	return this;
}

// --- Pour ouvrir la base de données ---
public void close()
{
	DBHelper.close();
}

// --- Pour insérer une attraction dans la db ---
public long insertAttraction(String nom, String description, float longitude, float latitude, String type)
{
	ContentValues initialValues = new ContentValues();
	initialValues.put(KEY_NOM, nom);
	initialValues.put(KEY_DESCRIPTION, description);
	initialValues.put(KEY_LONGITUDE, longitude);
	initialValues.put(KEY_LATITUDE, latitude);
	initialValues.put(KEY_TYPE, type);
	return db.insert(DATABASE_TABLE, null, initialValues);
}

// --- Pour supprimer d'une db ---
public boolean deleteAttraction(long rowId)
{
	return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) >0;
}

// --- Pour retrouver tous les attractions ---
public Cursor getAllAttractions()
{
	return db.query(DATABASE_TABLE, new String[] {
			KEY_ROWID,
			KEY_NOM,
			KEY_DESCRIPTION,
			KEY_LONGITUDE,
			KEY_LATITUDE,
			KEY_TYPE}, 
			null, null, null, null, null);
}

// --- Pour retrouver une attraction en particulier ---
public Cursor getAttraction(int rowId)throws SQLException
{
	Cursor mCursor = 
		db.query(DATABASE_TABLE, null, KEY_ROWID + "=" + rowId, null, null, null, null);
	if(mCursor != null){
		mCursor.moveToFirst();
	}
	return mCursor;
}
}

et ici mon Detail.java qui est mon activité...

package com.projet.android.mons;

import com.projet.android.mons.DBAdapter;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;


public class Details extends Activity {

/** Called when the activity is first created. */
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       DBAdapter db = new DBAdapter(this); 

   }  

}

Merci d'avance!

Lien vers le commentaire
Partager sur d’autres sites

Simple erreur de ma part ^^ J'avais permuté le nom de la table et la table de la base... Et au final ca fonctionne, donc c'est cool B)

Mais j'ai d'autres questions... Est-ce que quelqu'un a t'il déjà traité des coordonnées géographiques pour trouver une coordonnées voisin à distance minimale? :D

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...