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

ASP.NET Discussion :

Comment faire un update avec une SqlDataSource dans un gridview en utilisant des variables non affichées


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Points : 60
    Points
    60
    Par défaut Comment faire un update avec une SqlDataSource dans un gridview en utilisant des variables non affichées
    Bonjour à tous!

    J'ai un gridview qui contient des informations de plusieurs table dans ma base de données.

    J'aimerais pouvoir mettre à jours la colonne "Commentaire".

    Voici ma requête update :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE TR_table1_table2 as tb12 SET Commentaire = @commentaire WHERE (tb12.PK_erreur = @pk_erreur) AND (tb12.pk_evenement = @pk_evenement)>
    Le problème se situe au niveau de la récupération des variables pour la clause "WHERE".

    Je m'explique :

    J'arrive a mettre à jours la colonne "Commentaire" uniquement quand les pk_evenement et pk_erreur sont affiché dans la gridview! mais quand je les retire de l'affichage de ma GridView je ne peux plus update "Commentaire"!

    J'ai essayé avec des HiddenField, ça fonctionne mais par contre du coup j'ai des petites colonnes vide.

    J'aimerais éviter de faire ce minable update en code behind si possible.

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    pourquoi des hiddenfields? cache la colonne, pas la donnée.
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Points : 60
    Points
    60
    Par défaut
    Salut Louis-Guillaume!

    Enfait, j'ai déjà essayé en faisant "Visible = false" dans le header des colonnes. La effectivement la colonne ne s'affiche plus, mais les données ne sont plus "injectée" dans la requête "update" de ma SqlDataSource.

    Peut être que ce n'est pas possible à faire? Autrement je peux contourner le problème en faisant le tout dans le code behind.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Bonjour,

    Je ne comprends pas bien ton contexte, tu peux me le préciser s'il te plait?
    Si tu as une gridview et un SqlDatadource, à priori, ta requête update pour ta gridview est appelé automatiquement pas ton sqldatasource car elle est déclarée dedans, c'est bien ça?
    Au niveau code source de ta page aspx, tu as ce genre de truc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <asp:ObjectDataSource ID="tonid" runat="server" 
    TypeName="acces_à_ta_requete" 
    UpdateMethod="tarequeteupadate">
                <UpdateParameters>
                    <asp:Parameter Name="id" Type="Int32" />
                    <asp:Parameter Name="commentaire" Type="String"/>
                </UpdateParameters>
            </asp:ObjectDataSource>
    Au détail près que je bosse avec Oracle sur ce projet et toi, avec SQLserver mais ca change peut de chose pour asp.net.

    Bref, normalement, si tes champs pk_evenement et pk_erreur sont bien en asp:BoundField avec visible="false" et que ton champ "commentaire" apparait bien en asp:parameter, ton objet sqldatasource doit mettre à jour le champ correctement en appelant ta requête.

    Montre-nous ton le code asp de ta gridview avec ses colonnes & boudfield et celui de ton objet sqldatasource s'il te plait

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Points : 60
    Points
    60
    Par défaut
    Salut Yuna,

    Merci beaucoup !

    Tu as résolu mon problème! En fait j'avais converti mes colonnes en "TemplateField" et du coup quand je mettais "Visible = false" à la colonne ça ne fonctionnait plus.

    Maintenant j'ai gardé la colonne en BoundField simple et ça marche!

    Je suis allé chercher trop loin .

    Encore merci et bonne journée!

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Cool, tant mieux,
    you're welcome

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

Discussions similaires

  1. [Débutant] Comment faire un UPDATE pour une Entitiy sélectionnée dans la View
    Par jérémyp8 dans le forum ASP.NET MVC
    Réponses: 0
    Dernier message: 15/01/2015, 21h43
  2. Requête comment faire un Update avec une concaténation
    Par Chocolat49 dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 13/02/2014, 20h39
  3. Réponses: 7
    Dernier message: 05/12/2008, 09h26
  4. Faire un update avec une ss requete renvoyant plusieur row
    Par djodjo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/09/2005, 15h51

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