IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Mettre à jour la BDD selon valeurs EditText saisies


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 103
    Par défaut Mettre à jour la BDD selon valeurs EditText saisies
    Bonjour,

    Je souhaite mettre à jour la base de donnée selon les valeurs saisies dans les EditText..
    Donc voici, comment j'ai codé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    package com.example.cartedefidelite;
     
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
     
    public class ModificationClientActivity extends DetailClientActivity {
    	clientBDD clibdd = new clientBDD(this);
    	client cli = new client("", "", "", "", "", "", "", 0, 0);
    	client cli2 = new client("","","","","","","",0,0);
    	Button modifier;
    	EditText nom;
    	EditText prenom;
    	EditText adresse;
    	EditText cp;
    	EditText ville;
    	EditText mail;
    	EditText tel;
    	EditText pizzaencours;
    	EditText pizzatotal;
    	String strNom;
    	String strPrenom;
    	String strAdresse;
    	String strCp;
    	String strVille;
    	String strMail;
    	String strTel;
    	int identifiant;
     
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.modifierclient);
    		Bundle objetbundle = this.getIntent().getExtras();
    		identifiant = objetbundle.getInt("identifiant");
    		nom = (EditText) findViewById(R.id.EtNom);
    		prenom = (EditText) findViewById(R.id.EtPrenom);
    		adresse = (EditText) findViewById(R.id.EtAdresse);
    		cp = (EditText) findViewById(R.id.EtCp);
    		ville = (EditText) findViewById(R.id.EtVille);
    		mail = (EditText) findViewById(R.id.EtMail);
    		tel = (EditText) findViewById(R.id.EtTel);
    		modifier = (Button) findViewById(R.id.modifier);
    		clibdd.open();
    		cli = clibdd.getClientwithId(identifiant);
    		nom.setHint(cli.getNom());
    		prenom.setHint(cli.getPrenom());
    		adresse.setHint(cli.getAdresse());
    		cp.setHint(cli.getCp());
    		ville.setHint(cli.getVille());
    		mail.setHint(cli.getMail());
    		tel.setHint(cli.getTel());
    		modifier.setOnClickListener(modifierListener);
    		clibdd.close();
    	}
     
    	private OnClickListener modifierListener = new OnClickListener() {
    		public void onClick(View v) {
    			// si l'utilisateur a cliqué sur le bouton modifier
    			if (v == modifier) {
    				// récupération des données saisies par l'utilisateur
    			    cli2.setNom(nom.getText().toString());
                    cli2.setPrenom(prenom.getText().toString());
    				cli2.setAdresse(adresse.getText().toString());
    				cli2.setCp(cp.getText().toString());
    				cli2.setVille(ville.getText().toString());
    				cli2.setMail(mail.getText().toString());
    				cli2.setTel(tel.getText().toString());
    				 // connexion à la base de donnée
    				clibdd.open();
    				cli = clibdd.getClientwithId(identifiant);			
    				if(cli2.getNom() == null){
    					cli.setNom(cli2.getNom());
    				}
    				if(cli2.getPrenom()== null)
    				{
    				   cli.setPrenom(cli2.getPrenom());
    				}
    				if(cli2.getAdresse()== null)
    				{
    					cli.setAdresse(cli2.getAdresse());
    				}
    				if(cli2.getCp()== null)
    				{
    					cli.setCp(cli2.getCp());
    				}
    				if(cli2.getVille()== null)
    				{
    					cli.setVille(cli2.getVille());
    				}
    				if(cli2.getMail()== null)
    				{
    					cli.setMail(cli2.getMail());
    				}
    				if(cli2.getTel()== null)
    				{
    					cli.setTel(cli2.getTel());
    				}
    			    // mise à jour du client dans la base de donnée
    				clibdd.updateClient(identifiant, cli);
    				// fermeture de la base de donnée
    				clibdd.close();
    				// fermeture de l'activité modidier
    				finish();
     
    			}
    		}
    	};
    }
    Mais quand j'essaye, de mettre à jour, le client, ça fait comme si ça ignorait les if... et ça me met des champs null où je n'ai pas saisi de valeurs...

    Je vois pas le problème, malgré que j'ai essayé tout plein de trucs...
    Comment peut ton remédier à ça?
    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 103
    Par défaut
    Enfin tous les == null ont été remplacés par != null mais ça ne fonctionne pas quand même...

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Il faudrait voir la fonction clibdd.updateClient(identifiant, cli); ....

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2013
    Messages : 70
    Par défaut
    il me semble que tu récupères un String vide (== "") plutot qu'un string null...

    fait tes compare avec tonstring.equals(null) ou tonstring==""

    ce qui donne pour toi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (!tonstring.equals(null))
    {
     
    }

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Enfin, moi je dirais que c'est la fonction de mise à jour de DB qui devrait faire les tests.... mais c'est mon point de vue...

    et non:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!tonstring.equals(null))
    est absolument equivalent à:
    C'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!TextUtils.isEmpty(tonstring))
    qu'il faut utiliser, et si la fonction n'existe pas, elle se remplace par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (tonstring != null && tonstring.length() > 0)

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2013
    Messages : 70
    Par défaut
    effectivement, je viens d'aller voir la java doc et tu as raison désoler pour ce code erroné

    on ne peux pas comparer une chaine vide avec un null et equals

    donc c'est bien isEmpty()

    merci nicroman de m'avoir corrigé

Discussions similaires

  1. Mettre à jour une BDD depuis JTable
    Par the watcher dans le forum Composants
    Réponses: 2
    Dernier message: 05/10/2010, 19h51
  2. Réponses: 2
    Dernier message: 10/09/2009, 21h54
  3. Mettre à jour uniquement la premiere valeur
    Par MrMaze dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/04/2009, 19h31
  4. Mettre à jour une bdd access
    Par almora007 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 01/09/2007, 22h39
  5. [C#] mettre à jour ma bdd à partir d'une datatable
    Par rudhf dans le forum Windows Forms
    Réponses: 17
    Dernier message: 27/04/2006, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo