Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : octobre 2012
    Messages : 4
    Points : 0
    Points
    0

    Par défaut Remplir un objet avec un dataset

    Bonjour,

    je débute en programmation, en C# et en Asp MVC 4 (ouf !). Je suis pas super fort donc d'aide et de patience serait les bienvenues !

    Je dois remplir une liste d'objet avec un dataset et j'ai un peu de mal à comprendre le fonctionnement.
    Code C# :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Model - classe DAO
    namespace SkillyMVC4.Models
    {
        public class DAO_Trainings
        {
            SqlConnection _con = new SqlConnection();
     
            public DataSet ListeTrainings()
            {
                SqlCommand cd = new SqlCommand();
                SqlDataAdapter da = new SqlDataAdapter();
                _con.ConnectionString = WebConfigurationManager.ConnectionStrings["DBConnectionString1"].ConnectionString;
                DataSet ds = new DataSet();
                cd.CommandText = "SELECT Training.ID_Training, Training.Titre_Training, Training.Resume_Training, Training.Prix_Training, Training.IDCategorie, Training.Createur_Training FROM Training ORDER BY Training.Titre_Training";
                cd.Connection = _con;
                da.SelectCommand = cd;
                da.Fill(ds);
     
                return ds;
            }
        }
    }

    Code C# :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Model - classe training
     
    namespace SkillyMVC4.Models
    {
        public class Training 
        {
            public int Id_Training { get; set; }
            public string Titre_Training { get; set; }
        }
    }

    Code C# :
    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
    Controller - TrainingsController
    
    namespace SkillyMVC4.Controllers
    {
        public class TrainingsController : ApiController
        {
    
            private SkillyMVC4.Models.DAO_Trainings dao_trainings = new DAO_Trainings();
            List<Training> listeTraining = new List<Training>();
                   
    
            public IEnumerable<Training> GetListeTrainings()       
            {
                List<Training> listeTraining = new List<Training>();
                DataSet ds = new DataSet();
    
                ds=dao_trainings.ListeTrainings();
                
                foreach (DataRow dr in ds.Tables[0].Rows) 
                {
                Training  training = new Training();
                training.Id_Training = dr.[0];
                    training.setNom_= (DataRow.NomdeChamp());
                    listeTraining.Add(training);
                }
    
                return listeTraining;
            }
            
        } 
    }

    C'est au niveau des caractères en gras que je percute pas.

    Merci d'avance !

  2. #2
    Membre chevronné
    Homme Profil pro Etienne Mermillod
    Inscrit en
    février 2007
    Messages
    459
    Détails du profil
    Informations personnelles :
    Nom : Homme Etienne Mermillod
    Âge : 30

    Informations forums :
    Inscription : février 2007
    Messages : 459
    Points : 636
    Points
    636

    Par défaut

    Salut,

    Alors pour le lignes en gras:
    Code :
    1
    2
    3
    4
    5
    6
    7
    foreach (DataRow dr in ds.Tables[0].Rows)
    {
    Training training = new Training();
    training.Id_Training = dr.[0];
    training.setNom_= (DataRow.NomdeChamp());
    listeTraining.Add(training);
    }
    => un dataset pourrait être assimilé à un classeur, il comporte plusieurs feuilles qui comporte chacune des colonnes et des lignes. Mais comme dans Excel on se sert que de la première feuille d'où le
    Ensuite on fais une boucle pour chaque ligne de notre feuille.
    Code :
    foreach (DataRow dr in ds.Tables[0].Rows)
    Après quoi on ajoute la ligne de la feuille dans les résultats à retourner:

    euh ici je crois que tu as le "." entre dr et [0] en trop:
    Code :
    training.Id_Training = dr.[0];
    Par contre, je vois pas trop ce que l'on veux faire avec :
    Code :
    training.setNom_= (DataRow.NomdeChamp());
    Et voila,

    Ps: au lieu de mettre la balise citation, utilise celle "code" avec un dièse en icone.

  3. #3
    Invité de passage
    Homme Profil pro
    Inscrit en
    octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : octobre 2012
    Messages : 4
    Points : 0
    Points
    0

    Par défaut

    Merci de ta réponse. En fait, je suis passer par Entity Framework et une classe custom pour charger ma collection et c'est ok.

    Le thread peut passer en résolu. Merci à vous

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •