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

C# Discussion :

problème sur la modification des données d'un champ


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut problème sur la modification des données d'un champ
    Bonjour tout le monde,

    Voila, j'ai une application sous VisualStudio.Net2003 et une base de données SqlServer2000.

    Dans cette application, j'ai des renseignements sur le clients, le contact et la machine....

    Imaginon que le client, le contact mais aussi la machine existe déja dans la base SqlServer 2000. Je voudrais que l'utilisateur de cette application puisse modifier la configuration de la machine et qu'en appuyant sur un bouton cela enregistre la modification effectuées sur la configuration de la machine.

    EXEMPLE : configMachine = 5Go. L'utilisateur change '5Go' en '15Go'. Je souhaiterais que dans la base au lieu d'avoir 5 on a 15 Go après avoir cliqué sur le bouton.

    J'ai commencé a faire comme cela mais je souhaiterais avoir vos conseil et votre aide :
    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
    				SqlDataAdapter _MonDataAdapter3;
    				System.Data.DataTable _MaDataTable3;
     
    				// RECUPERER La configMat
    				string RequeteSQL3 = "SELECT M_CONFMAT FROM MACHINE WHERE M_CONFMAT='" + ConfigMachine.Text + "'";
     
    				_MonDataAdapter3 = new SqlDataAdapter(RequeteSQL3, connection);
     
    				_MaDataTable3 = new DataTable();
    				_MonDataAdapter3.Fill(_MaDataTable3);
     
    else if (_MaDataTable3.Rows.Count > 0) and (ConfigMachine!=M_CONFMAT)
    				{
     
    				}
    Auriez-vous fait comme cela??
    1) Si non, comment feriez vous??
    2) Si oui, dans le code suivant je me demande si la syntaxe se fait comme cela??
    :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if (_MaDataTable3.Rows.Count > 0) and (ConfigMachine!=M_CONFMAT)
    merci d'avance

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Oulala c'est bien bizarre comme code.

    Donc si j'ai bien compris c'est en mode déconnecté c'est ça ?

    Dans tu modifies ta DataTable et après tu fais un Update de ton Adapter.
    http://msdn2.microsoft.com/fr-fr/lib...33(VS.80).aspx

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à Skyrunner
    Qu'appelle tu en mode déconnectée??

    Je vois pas trop comment utiliser le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try
    {
        this.Validate();
        this.customersBindingSource.EndEdit();
        this.customersTableAdapter.Update(this.northwindDataSet.Customers);
        MessageBox.Show("Update successful");
    }
    catch (System.Exception ex)
    {
        MessageBox.Show("Update failed");
    }
    merci d'avance!!

  4. #4
    Membre chevronné
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if (_MaDataTable3.Rows.Count > 0) and (ConfigMachine!=M_CONFMAT)
    Je ne sais pas ce que vaut "M_CONFMAT", mais si c'est un string alors ce sera plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if (_MaDataTable3.Rows.Count > 0) and (ConfigMachine.Text != M_CONFMAT)
    Mosco

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à MoscoBlade
    "M_CONFMAT" est le nom du champ correspondant a la configuration de la machine dans la base.


    merci d'avance!!

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Euh tu utilises des Dataset/Datatable ou tu fais tu es en mode connecté (DataReader et compagnie ?).

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à Skyrunner
    Ben pour la modification, je fais comme j'ai mit la haut.

    merci d'avance!!

  8. #8
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Ben pour la modification, je fais comme j'ai mit la haut.

    merci d'avance!!
    Oui mais pour aller chercher les données comment fais-tu ?

  9. #9
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    Voila, j'ai une application sous VisualStudio.Net2003 et une base de données SqlServer2000.
    Dans cette application, j'ai des renseignements sur le clients, le contact et la machine....
    Imaginon que le client, le contact mais aussi la machine existe déja dans la base SqlServer 2000. Je voudrais que l'utilisateur de cette application puisse modifier la configuration de la machine et qu'en appuyant sur un bouton cela enregistre la modification effectuées sur la configuration de la machine.

    EXEMPLE : configMachine = 5Go. L'utilisateur change '5Go' en '15Go'. Je souhaiterais que dans la base au lieu d'avoir 5 on a 15 Go après avoir cliqué sur le bouton.
    Je suppose que
    après avoir cliqué sur le bouton.
    veut dire "le bouton pour enregister les modifications" donc je te propose ceci :
    Dans ta table qui contient la "machine" tu as une clé ( c'est a dire un champ qui ne peut pas se répéter : un code) et dis a sql server ceci : "change la configuration de la machine; donne lui pour valeur 15Go mais seulement là où le code la machine est égale à tant" tu vois un peu?
    ta requete serait donc de ce genre là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     string requete = "update machine set configmachine = '15Go' where mon_champ_code_machine = 'le_code_choisi' ";

  10. #10
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Oui mais a priori il est en mode déconnecté donc je lui suggérais de modifier sa DataTable et de faire update avec son Adapter.

  11. #11
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Skyrunner +1

    1) Chargement des données en mode déconnecté (DataTable avec TableAdapter ou autres).

    2) Modifications par l'utilisateur.

    3) Update du DataTable par l'Adapter (entraine la modif dans la source de données).

    4) MAJ du DataTable si nécéssaire (DataTable.AcceptChanges()).

    Tout ça en mode déconnecté.

  12. #12
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    [QUOTE=Contrec;2976135]Skyrunner +1QUOTE]
    Tu trouves? et pourquoi? explique où se trouve mon erreur

  13. #13
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Car si il est en mode connecté, son Adapteur va automatiquement lancer les requêtes SQL correspondantes pour mettre à jour la BDD sans avoir à créer une requête (Update ... Set ... Where ID = ...). Si il possède un DataSet ou DataTable avec des données et que l'utilisateur fasse 150 changements (dont des ajouts, des modifs, des suppressions etc..).

    La méthode Update de ton Adapteur va regarder pour chaque ligne (row) de ton DataSet ou DataTable son état et exécuter la bonne requête SQL automatiquement.

    Si la row en question a été supprimée, la requête sera "Delete From..."

    Si la row en question a été ajoutée, "Insert into..."

    Si la row en question a été modifiée "Update ... Where..."

    Tu n'as donc pas à te soucier de créer tes propres requêtes en strong pour les éxécuter.


    Maintenant, si l'utilisateur n'a qu'un seul champ à modifier, ta solution est mieux appropriée : Tu récupère la nouvelle valeur et lors de l'enregistrement :

    "update machine set configmachine = '15Go' where mon_champ_code_machine = 'le_code_choisi' ";

    PS : Il n'y a pas d'erreur dans ton code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/02/2015, 14h08
  2. Problème de mise à jour des données sur un onglet
    Par PenPen_lepingouin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/06/2008, 17h49
  3. Réponses: 7
    Dernier message: 09/07/2007, 21h14
  4. [MySQL] problème de syntaxe sur la récupération des données
    Par soshin dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 23/11/2006, 12h34
  5. Réponses: 6
    Dernier message: 15/02/2006, 14h02

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