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 :

Mettre à jour ( via SQL ) une base de données [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Par défaut Mettre à jour ( via SQL ) une base de données
    Bonjour,

    Je suis confronté à un petit soucis : je dois mettre à jour une base de données ( AS400 ) via SQL.

    Jusqu'à présent je ne faisais que lire et afficher des données et je m'en sortais très bien via la classe OleDbConnection ( en passant par la création d'un "adaptateur/dataset" ).

    Dois-je dans mon cas de figure :
    1/ Créer la table à mettre à jour dans mon DataSet ( jusque là classique )

    2/ Mettre à jour les données directement dans la table crée dans le DataSet

    3/ et là... je bloque !


    Un bout de code, une idée pour me mettre sur la (bonne) voie...



    JC

  2. #2
    Membre très actif
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2016
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

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

    Informations forums :
    Inscription : Mars 2016
    Messages : 154
    Par défaut
    Bonjour mon cher,
    je te conseillerai dans la continuité de code apres le remplissage de ton Dataset d'ecrire le code de modification des données et d'utiliser la commande de Oledbcommandbuilder cad :
    [CODE]

    adapter.UpdateCommand = builder.GetUpdateCommand();
    adapter.Update(dataSet);

    [CODE]

    Courage

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Par défaut
    Bonjour Prisson

    Merci d'avoir pris le temps de répondre à ma question.


    Dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     adapter.UpdateCommand = builder.GetUpdateCommand();
                     adapter.Update(dataSet);

    Comment dois-je définir/créer la classe (?) "builder" ?

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Par défaut
    Re-Bonjour,

    Merci pour ton aide Prisson,

    J'ai trouvé la réponse à ma question :


    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
    // [  Création adaptateur  ]
                        OleDbDataAdapter MyAdapt = new OleDbDataAdapter();
     
                        // [ Création DataSet ]
                        DataSet myDataSet = new DataSet();
     
                        // [ Création Objet "MyUpdate" OleDbCommandBuilder ]
                        OleDbCommandBuilder MyUpdate = new OleDbCommandBuilder();
     
                        // [ Création requête d'accés à lenregistrement ]
                        string RQTE_ACCES_INTERLO = " select * from ADMGFC_DBF.EINTRLP where FCHROI = " + STR_INTERLO_MAJ[0].NUM_CHRO_MAJ;
     
                        // Exécution de la requête construite ci dessus via l'adapteur et injection dans le DataSet
                        // [ Un ADAPTATEUR sert à REMPLIR un DATASET ]
                        // ( L'adapteur lance et exécute la requête en ouvrant la connexion ) 
                        MyAdapt.SelectCommand = new OleDbCommand(RQTE_ACCES_INTERLO, ConnectLst);


    Pour ceux que ça intéresse, voici un site intéressant à ce sujet :


    http://csharp.net-informations.com/d...lder-oledb.htm

  5. #5
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    pour tes requêtes tu devrais utiliser les Parameters, les concaténations laissent de la place à l'injection.

    Pour ton sujet initial, si tu cherches à faire un UPDATE (mais pas sûr d'avoir compris), je vois pas pourquoi tu veux passer par un DataSet.
    Un simple ExecuteNonQuery de ta requête d'update semble bien plus simple et performant.

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Par défaut
    Bonjour jopopmk,

    Merci pour ton aide


    Je ne connais pas "ExecuteNonQuery", merci de m'avoir orienté la dessus ! Oui, effectivement, c'est bien un Update que je souhaite effectuer.


    Par contre, dans ta phrase "pour tes requêtes tu devrais utiliser les Parameters, les concaténations laissent de la place à l'injection.", je ne saisis pas ce que tu veux dire..

    je ne sais pas ce qu'une une "injection" ( suis débutant en C#).

    Qu'entends tu par "Parameters" : veux tu dire "Parametres" ??

    Merci

    JC

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/10/2008, 10h53
  2. mise à jour automatisé d'une base de donnée
    Par giroparo dans le forum SQL
    Réponses: 2
    Dernier message: 29/01/2008, 17h32
  3. [Conception] mise à jour automatique d'une base de donné distante
    Par bipbip2006 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/06/2006, 16h45
  4. [MySQL] Mettre un booléen dans une base de donnée
    Par Viau dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2006, 15h14
  5. Interet de mettre des fichiers dans une base de donnée
    Par Oberown dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 04/07/2005, 11h35

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