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 :

afficher contenu DataTable [Débutant]


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Webplanneur
    Inscrit en
    Septembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Septembre 2011
    Messages : 4
    Par défaut afficher contenu DataTable
    Bonjour, je souhaiterai afficher la premier ligne d'une Datatable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int id = int.Parse(Request.Params.Get("ID"));
     
    User _user = new User();
    DataTable dtAle; 
     
                if (!id.Equals(0))
                     {
     
                    dtAle = _user.GetById(id);
     
                    lblID.Text = id.ToString();
                    lblLastName.Text = dtAle.????.ToString();
    Mais je ne trouve pas la méthode pour accéder au premier élément de ma datatable qui a pour nom de colonne user_lastname.

    ma datatable "dtAle" à cette structure :

    user_lastname | user_firstname
    Smith | kevin

    et j'aimerais afficher Smith pour l’élément d'id lblLastName dans ma page.

    Merci d'avance pour vos réponses.

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    Bonjour,

    Pour des questions de lisibilité, pourrais tu utiliser la balise code afin de séparer ton texte de tes exemples ? (c'est le deuxième bouton en partant de la droite sur la seconde ligne)

    Il y a plusieurs choses qui me font bizarre dans ton code. En général, un objet User, c'est une structure de données, cad qu'il ne sert qu'à stocker des informations (ici, un prénom et un nom). Pourtant, tu appelles GetById() dessus, tu dois donc avoir un soucis de séparation des couches.

    Normalement, un objet DAL (Data Access Layer, couche d'accès au données) sert à aller chercher les infos dans la base de données et cela retourne un objet simple (genre un User ici) pour que ta couche supérieure n'aies pas à ce soucier de ce qui se passe avec la base de données.

    Imaginons que demain tu aies à charger des utilisateurs depuis un fichier XML, tu ne changeras rien de ton code, mis à part cette DAL. Le reste de ton application ne sait pas d'où viennent les objets et continuera à fonctionner avec des User et non des DataTable
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Webplanneur
    Inscrit en
    Septembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Septembre 2011
    Messages : 4
    Par défaut
    Merci pour ta réponse,

    Ma couche DAL semble normale, elle accède au données de ma base :

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
     
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using DBAccess.DAO;
     
    namespace Core.Classes
    {
        public class User
        {
            //objets d'acces aux donnees
            private DaoUser _daoUser;
     
            #region Attributs
            private int _id;
            private string _lastName;
            private string _firstName;
            private int _telNum;
            private int _birthDate;
            #endregion
     
     
            public int Id
            {
                get { return _id; }
                set { _id = value; }
            }
     
            public string FirstName
            {
                get { return _firstName; }
                set { _firstName = value; }
            }
     
            public string LastName
            {
                get { return _lastName; }
                set { _lastName = value; }
            }
     
            public int TelNum
            {
                get { return _telNum; }
                set { _telNum = value; }
            }
     
            public int Birthdate
            {
                get { return _birthDate; }
                set { _birthDate = value; }
            }
     
            private void PrepareDao()
            {
                if (_daoUser == null)
                {
                    _daoUser = new DaoUser();
                }
            }
            public DataTable GetById(int id)
            {
                PrepareDao();
                return _daoUser.GetUsersById(id);
            }
     
            public DataTable GetAll()
            {
                PrepareDao();
                return _daoUser.GetUsers();
            }
     
          }
    }
    J'ai bien fais la distinction, ma méthode récupéré un objet de type Datatable.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Webplanneur
    Inscrit en
    Septembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Septembre 2011
    Messages : 4
    Par défaut
    C'est bon j'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
     lblLastName.Text = dtAle.Rows[0]["user_lastname"].ToString();

  5. #5
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    Je ne sais pas si c'est que moi que ça choque, mais je ne vois pas ce que vient faire ton objet DAL dans ton user et pourquoi c'est à travers lui que tu fais tes appels data

    Et pourquoi retourner une DataTable au lieu d'une entité normale ?
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Webplanneur
    Inscrit en
    Septembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Septembre 2011
    Messages : 4
    Par défaut
    Oui ça ne doit pas être très correct, je début en C# (j'ai commencé lundi ^^). J'ai modifier mon Dal et mon appel, ça vous semblera peut être plus correcte :

    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
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using Core.Classes;
     
     
     
    public partial class DetailUtilisateur : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
     
     
                int id = int.Parse(Request.Params.Get("ID"));
                User _user = new User();
              //  DataTable dtAle; 
                // ou bien Rows.Count > 0
                if (!id.Equals(0))
                     {
     
                    User dtAle = _user.CreateFromId(id);
     
                    //DataTable res = _user.GetById(id);
     
                    lblID.Text = id.ToString();
                    lblLastName.Text = dtAle.LastName;
                    lblFirstName.Text = dtAle.FirstName;
                    lblBirthDate.Text = Convert.ToString(dtAle.Birthdate);
                    lblTelNum.Text = Convert.ToString(dtAle.TelNum);
     
                }
     
     
        }
    }
    DAL :
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using DBAccess.DAO;
     
    namespace Core.Classes
    {
        public class User
        {
            //objets d'acces aux donnees
            private DaoUser _daoUser;
     
            #region Constantes
            public const string COLUMN_ID = "user_id";
            public const string COLUMN_LASTNAME = "user_lastname";
            public const string COLUMN_FIRSTNAME = "user_firstname";
            public const string COLUMN_TELNUM = "user_telnum";
            public const string COLUMN_BIRTH = "user_birthdate";
            #endregion
     
            #region Attributs
            private int _id;
            private string _lastName;
            private string _firstName;
            private int _telNum;
            private int _birthDate;
            #endregion
     
     
            public int Id
            {
                get { return _id; }
                set { _id = value; }
            }
     
            public string FirstName
            {
                get { return _firstName; }
                set { _firstName = value; }
            }
     
            public string LastName
            {
                get { return _lastName; }
                set { _lastName = value; }
            }
     
            public int TelNum
            {
                get { return _telNum; }
                set { _telNum = value; }
            }
     
            public int Birthdate
            {
                get { return _birthDate; }
                set { _birthDate = value; }
            }
     
            private void PrepareDao()
            {
                if (_daoUser == null)
                {
                    _daoUser = new DaoUser();
                }
            }
            public DataTable GetById(int id)
            {
                PrepareDao();
                return _daoUser.GetUsersById(id);
            }
     
            public User CreateFromId(int id)
            {
                PrepareDao();
                DataTable dt = _daoUser.GetUsersById(id);
                if (dt.Rows.Count < 1)
                    return null;
     
                User user = new User();
               // user._id = Int32.Parse(dt.Rows[0][COLUMN_ID].ToString());
                user._lastName = dt.Rows[0][COLUMN_LASTNAME].ToString();
                user._firstName = dt.Rows[0][COLUMN_FIRSTNAME].ToString();
                user._telNum = Int32.Parse(dt.Rows[0][COLUMN_TELNUM].ToString());
                user._birthDate = Int32.Parse(dt.Rows[0][COLUMN_BIRTH].ToString());
     
                return user;
            }
     
     
            public DataTable GetAll()
            {
                PrepareDao();
                return _daoUser.GetUsers();
            }
     
          }
    }

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

Discussions similaires

  1. Sauvegarder page Web + afficher contenu partiel
    Par GoldenEye dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 13/07/2006, 15h19
  2. [JOptionPane] Afficher contenu BufferedReader
    Par groovyroe dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 15/06/2006, 10h21
  3. Pb Affiche contenu Recordset dans zone de liste
    Par stan314 dans le forum Access
    Réponses: 5
    Dernier message: 11/05/2006, 16h53
  4. Réponses: 2
    Dernier message: 09/09/2005, 10h06
  5. [process] Afficher contenu gestionnaire des tâches
    Par keny dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/07/2005, 17h56

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