Bonjour,
Je suis débutant et j'essaye de développer une petite application en 4-tiers architecture dans le cadre d'une formation.

Pour tester certaines fonctions(delete,update,tri...), je récupère les informations par un objet Data Table et j'affiche les lignes (nom, prénom..) sur une page ASP via Gridview.

Pour le tri des colonnes ou de DELETE pas de problème. Pas de problème non plus pour INSERT.

Pour la fonction update j'ai quelques soucies .. En effet, Dans ma table j'ai tous les champs, mais je n'affiche qu'une partie avec ma GridView. Mais, j'ai besoin de récupérer tous les champs y compris ceux qui ne sont pas affichés avec leur valeurs d'origine, parce que je souhaite avoir une seule procédure stockée dans ma couche de persistance pour la fonction UPDATE.

Question : Comment récupérer les valeurs de ces champs ?

Merci d'avance..

Voici le bout de code:

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
    
/// Se déclenche quand on clique sur  le bouton "Mise à Jour" 
 
    protected void UpdateRecord(object sender, GridViewUpdateEventArgs e)
    {
        // e.RowIndex = index de la ligne. Donc on recupere l'identifiant de l'utilisateur de la ligne e.RowIndex

        int IdUtilisateur = Int32.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());
      
        int intResult = 0;     

        GridViewRow row = GridView1.Rows[e.RowIndex];

	 // les champs affichés :
        TextBox tPn = (TextBox)row.FindControl("txtPnom"); 
        TextBox tNm = (TextBox)row.FindControl("txtNm");
        TextBox tPsd = (TextBox)row.FindControl("txtPseudo");
        TextBox tEml = (TextBox)row.FindControl("txtMail");

        // instancier BAL
        UtilisateurBAL uBAL = new UtilisateurBAL();
        Utilisateur utilisateur = new Utilisateur();
        try
        {
            utilisateur.IdUtilisateur =IdUtilisateur;
            utilisateur.Nom = tNm.Text;
            utilisateur.Prenom = tPn.Text;
            utilisateur.Pseudo = tPsd.Text;
            utilisateur.Email = tEml.Text;

           // comment recupérer les champs non affichés pour ne pas avoir plusieures  procédures  stockées
           //DateInscription
           //TypeUtilisateur
           //Ville
           //Pays
           //DateDeNaissance
           //Civilité......

            // instanciation Business Access Layer qui lui appele Data Access Layer
            intResult = uBAL.Update(utilisateur);

            if (intResult > 0)
                lblMessage.Text = "l'enregistrement mis à jour avec succès.";
            else
                lblMessage.Text = "l'enregistrement n'a pas pu être mis à jour.";
        }
        catch (Exception ee)
        {
            lblMessage.Text = ee.Message.ToString();
        }
        finally
        {
            utilisateur = null;
            uBAL = null;
        }

        GridView1.EditIndex = -1;
        // Rafrechir la list
        BindGrid();
    }