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 :

Bouton pour mettre à jours un champ de la base de données


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Points : 35
    Points
    35
    Par défaut Bouton pour mettre à jours un champ de la base de données
    Bonjour,

    J'ai une winform contenant une gridview avec les colonnes suivantes :

    Exercice,Etat,et un bouton 'Cloture'

    Ce bouton doit en principe mettre à jours le champs Etat dans la table 'Exercice' de la BD (etat doit avoir la valeur clôturé).
    Je n'arrive pas à concrétiser cela , et j'ai cherché partout , mais j'ai rien trouvé.

    Je tiens à vous informer que je travaille avec une architecture n-tiers.

    Couche Persistance :

    Exercice.hbm.xml
    Exercice.cs

    Couche Metier

    ExerciceService.cs

    Couche Présentation

    Exercice.aspx

    Merci de votre aide.

  2. #2
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Bonjour,

    Comment remplis-tu ton gridview (via dataset, darateader ...)?
    En outre, si tu peux nous montrer le code, ça nous aiderait à y voir plus clair.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Merci de votre réponse

    pour le remplissage du gridview je le fais par une Objectdatasource

    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
     
    <asp:ObjectDataSource ID="ObjectDataSource2" runat="server" 
            DataObjectTypeName="BE_ormvag.Exercice" DeleteMethod="delete" 
            InsertMethod="save" SelectMethod="GetExercices" 
            TypeName="DALC_ormvag.ExerciceService" UpdateMethod="update">
            <InsertParameters>
                <asp:Parameter Name="enteteSeq" Type="String" />
                <asp:Parameter Name="Exercice" Type="Object" />
            </InsertParameters>
        </asp:ObjectDataSource>
        <asp:GridView ID="GridView1" 
                     runat="server" 
                     DataSourceID="ObjectDataSource1"
                     CssClass="dtBasicColumnStyle" 
                     AutoGenerateColumns="False" 
                     DataKeyNames="identifiant" 
                     CaptionAlign="Right" 
                     Width="100%" 
                     AllowPaging="True"
                      OnDataBound="GridView1_DataBound"
                       OnRowDataBound="GridView1_RowDataBound">


    et voici un code pour la sauvegarde aprés insertion: BT_Sauvegarder_Click ( qui marche trés bien)
    et un pour la mise à jours de l'état en "cloture" :BT_Cloturer_Click ( qui ne marche pas)
    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
     
    protected void BT_Sauvegarder_Click(object sender, EventArgs e)
            {
     
     
                TextBox TB_libelle = GridView1.FooterRow.FindControl("TB_libelle") as TextBox;
     
                BE_ormvag.Exercice BEa = new BE_ormvag.Exercice();
                ExerciceService DALCa = new ExerciceService();
     
     
                BEa.libelle = TB_libelle.Text;
     
     
     
                BEa = DALCa.save(BEa);
     
                GridView1.ShowFooter = false;
                GridView1.DataBind();
     
            }
     
            protected void BT_Cloturer_Click(object sender, EventArgs e)
            {
     
     
     
                GridView1.ShowFooter = false;
                BE_ormvag.Exercice BEa = new BE_ormvag.Exercice();
                ExerciceService DALCa = new ExerciceService();
     
                BEa.etat = "Cluturé";
                BEa.dateCloture = DateTime.Now;
                DALCa.update(BEa);
                GridView1.DataBind();
     
            }

    Merci encore une fois pour votre réponse.


    Citation Envoyé par callo Voir le message
    Bonjour,

    Comment remplis-tu ton gridview (via dataset, darateader ...)?
    En outre, si tu peux nous montrer le code, ça nous aiderait à y voir plus clair.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Bonjour,
    Aucune idée sur ce problème ? je suis encore coincé .
    Je veux seulement récupérer la valeur du champs clé dans ce gridview et je vais faire l'update dans le codebehind.

    Merci de me répondre

  5. #5
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut
    J'ai mal compris où tu appelles objetdatasource :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:ObjectDataSource ID="ObjectDataSource2"
    et tu mets dans ta grille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSourceID="ObjectDataSource1"

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Excusez moi sur l'erreur , c'est dû à la copie :
    voici ce que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:ObjectDataSource ID="ObjectDataSource1"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSourceID="ObjectDataSource1"
    Citation Envoyé par BROWNY Voir le message
    J'ai mal compris où tu appelles objetdatasource :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:ObjectDataSource ID="ObjectDataSource2"
    et tu mets dans ta grille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSourceID="ObjectDataSource1"

  7. #7
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    Et moi je ne comprends pas ce qui ne fonctionne pas ?
    c'est vraiment pas clair.

    Est ce qu'il rentre dans la fonction cloturer ?
    mets un try catch deja pour voir ou ca coince

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    J'ai fait un déboguage , le problème est dû au fait que j'envoie l'identifiant (la clé primaire) vide , je ne sais pas comment récuperer l'identifiant de l'enregistrement.
    J'ai essayé d'utiliser SelectedDataKey , mais il me renvoie aussi null .

    Citation Envoyé par tortuegenie Voir le message
    Et moi je ne comprends pas ce qui ne fonctionne pas ?
    c'est vraiment pas clair.

    Est ce qu'il rentre dans la fonction cloturer ?
    mets un try catch deja pour voir ou ca coince

  9. #9
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut
    Sur ton bouton, tu peux utiliser :commanceArguments et commandename
    Voici un exemple tirer d'un de mes répéteurs, de mémoire il faut faire un peut près comme ça aussi pour un gridview
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:ImageButton ID="btnSuppr" ImageUrl="~/images/suppr.png" runat="server" ToolTip="Supprimer"
                                                            CausesValidation="false" CommandName="DEL" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Name").ToString() %>' />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Protected Sub rptFichier_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles rptFichier.ItemCommand
            If e.CommandName = "DEL" Then
                Try
                    Dim CheminPhy As String = DossierName
                    Dim FicPhys As New IO.FileInfo(CheminPhy & "/" & e.CommandArgument.ToString)
                    FicPhys.Delete() ' Suppression physique
     
                    BindFileLoaded()
                Catch ex As Exception
                    Me.Master.AfficheMessage("Erreur suppression Fichier", False)
                End Try
            End If
        End Sub

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Merci le pb est résolu.

    voici ce que j'ai fait

    sur la page ASP j'ai mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
                <asp:TemplateField ShowHeader="False">
                              <ItemTemplate>
                                  <asp:Button ID="Button2" runat="server" CausesValidation="false" 
                                      CommandName="cloture" Text="Clôturer"  Width="100%" 
     
                                      OnClientClick="return confirm('Etes vous sûr de vouloir clôturer cet exercice?');" 
                                      CommandArgument='<%# Eval("identifiant") %>' />
                              </ItemTemplate>
                              <ItemStyle Width="10px" />
                          </asp:TemplateField>
    et sur le code behind :
    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
     
     protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
            {
     
                if (e.CommandName == "cloture")
                {
                    GridView1.ShowFooter = false;
                    BE_ormvag.Exercice BEa = new BE_ormvag.Exercice();
                    ExerciceService DALCa = new ExerciceService();
     
                    string id =Convert.ToString( e.CommandArgument);
                         //GridView1.DataKeys[Convert.ToInt32(e.RowIndex)].Value.ToString();
     
     
                   BEa = DALCa.loadById(id);
                    BEa.identifiant = id;
                    BEa.dateCloture = DateTime.Now;
                    BEa.etat = "Cluturé";
                    DALCa.update(BEa);
                    GridView1.DataBind();
     
                }
            }
    Espérant que ça aidera quelqu'un d'autre.
    Citation Envoyé par BROWNY Voir le message
    Sur ton bouton, tu peux utiliser :commanceArguments et commandename
    Voici un exemple tirer d'un de mes répéteurs, de mémoire il faut faire un peut près comme ça aussi pour un gridview
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:ImageButton ID="btnSuppr" ImageUrl="~/images/suppr.png" runat="server" ToolTip="Supprimer"
                                                            CausesValidation="false" CommandName="DEL" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Name").ToString() %>' />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Protected Sub rptFichier_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles rptFichier.ItemCommand
            If e.CommandName = "DEL" Then
                Try
                    Dim CheminPhy As String = DossierName
                    Dim FicPhys As New IO.FileInfo(CheminPhy & "/" & e.CommandArgument.ToString)
                    FicPhys.Delete() ' Suppression physique
     
                    BindFileLoaded()
                Catch ex As Exception
                    Me.Master.AfficheMessage("Erreur suppression Fichier", False)
                End Try
            End If
        End Sub

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

Discussions similaires

  1. [MySQL] Requete sql pour mettre à jour un champ
    Par casimirine dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/06/2013, 14h18
  2. Réponses: 2
    Dernier message: 12/09/2011, 15h47
  3. [AC-2010] fonction pour mettre à jour un champ en majuscule
    Par bremmo76 dans le forum Access
    Réponses: 6
    Dernier message: 23/09/2010, 22h53
  4. Réponses: 5
    Dernier message: 27/03/2009, 13h01
  5. utilise le composant updatesql pour mettre à jour un champ
    Par andyafrique dans le forum C++Builder
    Réponses: 1
    Dernier message: 05/10/2006, 12h48

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