Aller au contenu

problème enrengistrement base de données


Recommended Posts

Bonjour, voila j'ai un petit problème avec mon enregistrement dans ma base de données, j'ai une classe ou je construit ma base de données, une classe principale et mon xml avec des edit text qui prend les données a rentrer dans la basse. Je rempli les champs et quand je click sur envoyer il me dit de fermer l'application dans la console debug il me dit qu'il y a un null pointer execption sur OnClick a la ligne 52 pourtant je ne comprend pas le problème. Est ce que quelqu'un aurait une solution ?

merci d'avance

voici mes classes:

-------------------------------------------------------------------------------------------------------------------------------------------------------------

package com.google.android.bibax;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class bibax extends Activity {

private BDAcces objBd;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.options_menu, menu);

return true;

}

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.item01:

//int i = 1;

this.setContentView(R.layout.consultationbase);

return true;

case R.id.item02:

//int j = 1;

this.setContentView(R.layout.enregistrementbase);

Button buttonenvoyertable = (Button) findViewById(R.id.button_envoyertable);

final TextView nomchicha = (TextView) findViewById(R.id.edit_nom);

final TextView numerochicha = (TextView) findViewById(R.id.edit_numero);

final TextView codepostalchicha = (TextView) findViewById(R.id.edit_codepostal);

final TextView villechicha = (TextView) findViewById(R.id.edit_ville);

final TextView adressechicha = (TextView) findViewById(R.id.edit_adresse);

final TextView prixchicha = (TextView) findViewById(R.id.edit_prix);

final TextView descriptionchicha = (TextView) findViewById(R.id.edit_description);

buttonenvoyertable.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v) {

objBd.open();//connexion à ma base de donnée

String sNomChicha = nomchicha.getText().toString();//récupération du nom

String sNumeroChicha = numerochicha.getText().toString();

String sCodePostalChicha = codepostalchicha.getText().toString();

String sVilleChicha = villechicha.getText().toString();

String sAdresseChicha = adressechicha.getText().toString();

String sPrixChicha = prixchicha.getText().toString();

String sDescriptionChicha = descriptionchicha.getText().toString();

long bresult = objBd.insertchicha(sNomChicha, sNumeroChicha,sCodePostalChicha, sVilleChicha, sAdresseChicha, sPrixChicha, sDescriptionChicha);//enregistrement dans ma base de données

String resultsring = new Long(bresult).toString() ;//conversion du résultat en Type String pour pouvoir l'affiché

nomchicha.setText(resultsring);//affichage du résultat de notre requete dans le champ contenu de la recette

numerochicha.setText(resultsring);

codepostalchicha.setText(resultsring);

villechicha.setText(resultsring);

adressechicha.setText(resultsring);

prixchicha.setText(resultsring);

descriptionchicha.setText(resultsring);

objBd.close();//fermeture de ma base de données

;}

});

return true;

case R.id.item03:

//int i = 1;

this.setContentView(R.layout.jeux);

return true;

}

return false;

}

}

-------------------------------------------------------------------------------------------------------------------------------------------------------------

package com.google.android.bibax;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.content.ContentValues;

import android.database.SQLException;

import android.database.sqlite.SQLiteOpenHelper;

import android.util.Log;

public class BDAcces {

// variable bdd

private static final String CHICHA_TABLE = "chicha";

private static final String DATABASE_NAME = "chicha_android";

private static final int DATABASE_VERSION = 1;

//requete creation bdd

private static final String CREATE_CHICHA_TABLE ="CREATE TABLE chicha ("

+"nom_chicha TEXT NO NULL,"

+"numero_chicha INTEGER(10) NOT NULL,"

+"codepostal_chicha INTEGER (5) NOT NULL,"

+"ville_chicha TEXT (50) NOT NULL,"

+"adresse_chicha VARCHAR(500) NOT NULL,"

+"prix_chicha VARCHAR(10000) NOT NULL,"

+"description_chicha LONGTEXT NOT NULL,"

+")";

//je rajoute également trois attributs

private final Context mCtx;

//contient les information sur l'environnement de mon application

//class permettant de manager la creation,et la mise à jur de notre base

public BDAcces(Context ctx) {

this.mCtx = ctx;

}

private DatabaseHelper mDbHelper;

//class d'action sur notre base

private SQLiteDatabase mDb;

private static final String TAG = "BDAcces";

//J'ai vais maintenant créer ma classe DatabaseHelper qui est une extension de SQLiteOpenHelper

private static class DatabaseHelper extends SQLiteOpenHelper {

DatabaseHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);//ouverture ou creation de la base si elle n'existe pas

}

@Override

// methode qui est appelé quand on ouvre la base pour la première fois

public void onCreate(SQLiteDatabase db) {

db.execSQL(CREATE_CHICHA_TABLE);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//methode permettant une mise à jour de notre base de donnée

Log.w(TAG, "Upgrading database from version " + oldVersion + " to "

+ newVersion + ", which will destroy all old data");

db.execSQL("DROP TABLE IF EXISTS "+CHICHA_TABLE);

onCreate(db);

}

}

public void open() throws SQLException //ouvre l'acces à la base de donnée

{

mDbHelper = new DatabaseHelper(mCtx);

mDb = mDbHelper.getWritableDatabase();

}

public void close() //ferme l'accès à la base de donnée

{

mDbHelper.close();

}

public long insertchicha(String sNomChicha, String sNumeroChicha, String sCodePostalChicha, String sVilleChicha, String sAdresseChicha, String sPrixChicha, String sDescriptionChicha ) //insere un nouveau contenu

{

ContentValues initialValues = new ContentValues();

initialValues.put("nom_chicha", sNomChicha);

initialValues.put("numero_chicha", sNumeroChicha);

initialValues.put("codepostal_chicha", sCodePostalChicha);

initialValues.put("ville_chicha", sVilleChicha );

initialValues.put("adresse_chicha", sAdresseChicha );

initialValues.put("prix_chicha", sPrixChicha );

initialValues.put("description_chicha", sDescriptionChicha );

return mDb.insert(CHICHA_TABLE, null, initialValues);

}

}

-------------------------------------------------------------------------------------------------------------------------------------------------------------

mon rapport debug :

06-01 18:09:40.063: ERROR/AndroidRuntime(210): Uncaught handler: thread main exiting due to uncaught exception

06-01 18:09:40.093: ERROR/AndroidRuntime(210): java.lang.NullPointerException

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.google.android.bibax.bibax$1.onClick(bibax.java:52)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.View.performClick(View.java:2364)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.View.onTouchEvent(View.java:4179)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.widget.TextView.onTouchEvent(TextView.java:6541)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.View.dispatchTouchEvent(View.java:3709)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.os.Handler.dispatchMessage(Handler.java:99)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.os.Looper.loop(Looper.java:123)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.app.ActivityThread.main(ActivityThread.java:4363)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at java.lang.reflect.Method.invokeNative(Native Method)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at java.lang.reflect.Method.invoke(Method.java:521)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

06-01 18:09:40.093: ERROR/AndroidRuntime(210): at dalvik.system.NativeStart.main(Native Method)

Je ne voit donc vraiment pas mon problème si quelqu'un pourrait m'eclairer ?

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Archivé

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

×
×
  • Créer...