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 MVC Discussion :

Ajout dans deux tables en même temps asp.Net MVC3


Sujet :

ASP.NET MVC

  1. #1
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut Ajout dans deux tables en même temps asp.Net MVC3
    Bonsoir,
    Je travaille sur une table bénéficiaire qui est en liaison "one to many" avec la table membrefamille; chaque membre famille bénéficiaire ne peut être référencé qu'à un seul bénéficiaire et le bénéficiaire peut avoir plusieurs membre de famille.
    Mon problème réside lors de l'ajout d'un bénéficiaire, je dois aussi remplir les informations concernant les membres de sa famille (nom, prenom, profession) et effectuer donc aussi ajout membrefamille comment devrai-je faire au niveau du "beneficiaireController"?
    voilà mon essai mais il est faux car je considère un seul ajout d'un membre alors que ça peut être plusieurs membres. Est ce que je dois utiliser un HashSet avec clé,valeur?
    Merci
    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
    // POST: /beneficiaire/Create
     
            [HttpPost]
            public ActionResult Create(beneficiaire beneficiaire, membrefamille membrefamille)
            {
                if (ModelState.IsValid)
                {
                    db.beneficiaires.Add(beneficiaire);
                    db.SaveChanges();
                    db.membrefamilles.Add(membrefamille);
                    db.SaveChanges();
                    return RedirectToAction("Index");  
                }
     
                return View(beneficiaire);
            }

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2013
    Messages : 21
    Points : 37
    Points
    37
    Par défaut
    Salut,

    Je ne suis pas sur de bien comprendre ta question... Mais si ton but est de passé plusieurs membreFamille a ton controller tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public ActionResult Create(beneficiaire beneficiaire, membrefamille[] membrefamille)
    Mais encore une fois je suis pas certain d'avoir bien compris.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par janyoura Voir le message
    Bonsoir,
    Je travaille sur une table bénéficiaire qui est en liaison "one to many" avec la table membrefamille; chaque membre famille bénéficiaire ne peut être référencé qu'à un seul bénéficiaire et le bénéficiaire peut avoir plusieurs membre de famille.
    Mon problème réside lors de l'ajout d'un bénéficiaire, je dois aussi remplir les informations concernant les membres de sa famille (nom, prenom, profession) et effectuer donc aussi ajout membrefamille comment devrai-je faire au niveau du "beneficiaireController"?
    voilà mon essai mais il est faux car je considère un seul ajout d'un membre alors que ça peut être plusieurs membres. Est ce que je dois utiliser un HashSet avec clé,valeur?
    Merci
    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
    // POST: /beneficiaire/Create
     
            [HttpPost]
            public ActionResult Create(beneficiaire beneficiaire, membrefamille membrefamille)
            {
                if (ModelState.IsValid)
                {
                    db.beneficiaires.Add(beneficiaire);
                    db.SaveChanges();
                    db.membrefamilles.Add(membrefamille);
                    db.SaveChanges();
                    return RedirectToAction("Index");  
                }
     
                return View(beneficiaire);
            }
    Non, pas logique du tout. Tu cherches à faire deux chose en même temps qui sont en fait deux choses différentes:
    1. Ajouter un bénéficiaire avec ses ayants-droits
    2. Créér des personnes dans une table


    Sépare les deux, ça ira beaucoup mieux, et surtout il te faut une table faisant le lien entre bénéficiaires (qui sont aussi des personnes) et leurs ayant-droits.

    Une fois cela fait, lors de la création des bénéficiaires, montre dans une liste acceptant des choix multiples les membres de la même famille (filtre sur le nom, par exemple), et ajoute les personnes sélectionnées à la table de liens.

    Une base de données propre et bien structurée rend la programmation beaucoup plus facile.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 15
    Points
    15
    Par défaut je pense que c'est la repense de votre question
    si il y a une relation entre les deux tables one-many voila la bonne repense
    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
     
            [HttpPost]
            public ActionResult Create(beneficiaire beneficiaire, membrefamille[] membrefamille)
            {
                if (ModelState.IsValid)
                {
                    db.beneficiaires.Add(beneficiaire);
                    db.beneficiaires.Membrefamilles=new Membrefamilles();
                    foreach(var one in membrefamille){
                      db.beneficiaires.Membrefamilles.Add(one);
                     }
                    db.SaveChanges();
                    return RedirectToAction("Index");  
                }
     
                return View(beneficiaire);
            }

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par ykhales Voir le message
    si il y a une relation entre les deux tables one-many voila la bonne repense
    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
     
            [HttpPost]
            public ActionResult Create(beneficiaire beneficiaire, membrefamille[] membrefamille)
            {
                if (ModelState.IsValid)
                {
                    db.beneficiaires.Add(beneficiaire);
                    db.beneficiaires.Membrefamilles=new Membrefamilles();
                    foreach(var one in membrefamille){
                      db.beneficiaires.Membrefamilles.Add(one);
                     }
                    db.SaveChanges();
                    return RedirectToAction("Index");  
                }
     
                return View(beneficiaire);
            }
    A condition d'expliquer comment on fait pour créer plusieurs objets membreFamilles coté client sans les avoir envoyés 1 par 1 au serveur d'abord. Il faudrait pouvoir incrémenter la liste membreFamille coté client, mais ce n'est simplement pas possible. J'ai la vague impression que vous oubliez complétement l'aspect stateless qui défini le fonctionnement d'internet....

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 15
    Points
    15
    Par défaut Coté client
    exemple coté client :
    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
     
    <input type="hidden" name="membrefamille[0].ID" />
    <input type="text" name="membrefamille[0].Nom" />
    <input type="text" name="membrefamille[0].Prenom" />
    .
    .
    .
    .
    <input type="hidden" name="membrefamille[1].ID" />
    <input type="text" name="membrefamille[1].Nom" />
    <input type="text" name="membrefamille[1].Prenom" />
    .
    .
    .
    .

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par ykhales Voir le message
    exemple coté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <input type="hidden" name="membrefamille[0].ID" />
    <input type="text" name="membrefamille[0].Nom" />
    <input type="text" name="membrefamille[0].Prenom" />
    .
    .
    .
    .
    <input type="hidden" name="membrefamille[1].ID" />
    <input type="text" name="membrefamille[1].Nom" />
    <input type="text" name="membrefamille[1].Prenom" />
    OK, très bien. Juste une question: comment sait-on d'avance combien d'éléments il faut prévoir dans le tableau? 2, 5, 10 ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 15
    Points
    15
    Par défaut Jquery
    il faut le faire dynamique à l'aide de javascript et jquery sera plus facile tu rajoute des champs dés que tu a besoin dans ton formulaire. et n'oublier pas de bien incrémenter les index du tableau si non le controlleur va générer une exception

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input name="objet[1].Property" type="hidden" />
    ...
    <input name="objet[n].Property" type="hidden" />

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par ykhales Voir le message
    il faut le faire dynamique à l'aide de javascript et jquery sera plus facile tu rajoute des champs dés que tu a besoin dans ton formulaire. et n'oublier pas de bien incrémenter les index du tableau si non le controlleur va générer une exception

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input name="objet[1].Property" type="hidden" />
    ...
    <input name="objet[n].Property" type="hidden" />
    ca ne répond pas à la question de combien il faut en prévoir, et je persiste à penser que c'est une mauvaise réponse parceque c'est une mauvaise question. la solution est d'avoir une base de données qui reflète correctement la réalité, pas de tordre du code pour tacher de le faire coller malgré tout à ce que l'on souhaite faire.

  10. #10
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    Sinon utiliser une procédure stockée serai pas plus facile?

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par CrashAngel Voir le message
    Bonjour,

    Sinon utiliser une procédure stockée serai pas plus facile?
    heuh... Comment ça solutionne la question coté interface utilisateur?

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par janyoura Voir le message
    Mon problème réside lors de l'ajout d'un bénéficiaire, je dois aussi remplir les informations concernant les membres de sa famille (nom, prenom, profession) et effectuer donc aussi ajout membrefamille comment devrai-je faire au niveau du "beneficiaireController"?
    Je prépare un petit exemple complet et fonctionnel, même si trés simplifié, mais d'abord je fini de traduire plusieurs billets de mon blog (que je suis assez fou pour avoir fait bilingue...). Dés que c'est fait, je mets un mot ici.

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par BernieG Voir le message
    Je prépare un petit exemple complet et fonctionnel, même si trés simplifié, mais d'abord je fini de traduire plusieurs billets de mon blog (que je suis assez fou pour avoir fait bilingue...). Dés que c'est fait, je mets un mot ici.
    J'ai vaguement commencé, et surtout réfléchit à la meilleure manière de solutionner ce problème, apparemment simple, mais seulement en apparence...

    En effet, si on ne veut pas avoir à d'abord créer le parent, puis ses enfants, en 2 opérations séparées (la création des enfants serait sur une modification de la fiche parent), on se trouve tout de suite confronté à des situations que ni MS SQL, ni Entity Framework n'aiment beaucoup.....

    Tout d'abord, la seule manière que je connaisse de lier parents et enfants alors que l'objet parent n'est pas encore créé est d'utiliser une sequence, qui n'existe que depuis MS SQL Server 2012. Pour toute version antérieure, il faut créer l'équivalent, ce qui est loin d'être évident. De plus Entity Framework ne sait pas ce que sont les séquences, il faut donc le torturer quelque peu, en fait passer par une requête directe SqlQuery pour obtenir Next Value, et manuellement passer la valeur à la future clef primaire.

    Le problème est intéressant et vaut certainement la peine de s'en occuper, mais la solution ne peut pas consister en un simple petit exemple, que je n'ai pas vraiment le temps de faire tout de suite (mais ça viendra..). En attendant il me semble beaucoup plus sage de séparere les 2, comme je l'avais indiqué dans ma première réponse.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par BernieG Voir le message
    J'ai vaguement commencé, et surtout réfléchit à la meilleure manière de solutionner ce problème, apparemment simple, mais seulement en apparence...

    En effet, si on ne veut pas avoir à d'abord créer le parent, puis ses enfants, en 2 opérations séparées (la création des enfants serait sur une modification de la fiche parent), on se trouve tout de suite confronté à des situations que ni MS SQL, ni Entity Framework n'aiment beaucoup.....

    Tout d'abord, la seule manière que je connaisse de lier parents et enfants alors que l'objet parent n'est pas encore créé est d'utiliser une sequence, qui n'existe que depuis MS SQL Server 2012. Pour toute version antérieure, il faut créer l'équivalent, ce qui est loin d'être évident. De plus Entity Framework ne sait pas ce que sont les séquences, il faut donc le torturer quelque peu, en fait passer par une requête directe SqlQuery pour obtenir Next Value, et manuellement passer la valeur à la future clef primaire.

    Le problème est intéressant et vaut certainement la peine de s'en occuper, mais la solution ne peut pas consister en un simple petit exemple, que je n'ai pas vraiment le temps de faire tout de suite (mais ça viendra..). En attendant il me semble beaucoup plus sage de séparere les 2, comme je l'avais indiqué dans ma première réponse.

    vous pouvez mettre les parents et les enfants dans la même formulaire, par ce que Entity Framwork peu associer l'enfant au parent dés que le parent et créer.
    si j'ai bien compris voilà la solution Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    public ActionResult Create(Parent pr,Enfant[] ef)
    {
    ....
       pr.enfants=new iCollection<enfant>();
       foreach(var one in ef){
          pr.enfants.add(one);
       }
     
       db.Parent.add(pr);
       db.SaveChange();
    ....   
    }

  15. #15
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par ykhales Voir le message
    vous pouvez mettre les parents et les enfants dans la même formulaire, par ce que Entity Framwork peu associer l'enfant au parent dés que le parent et créer.
    si j'ai bien compris voilà la solution Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    public ActionResult Create(Parent pr,Enfant[] ef)
    {
    ....
       pr.enfants=new iCollection<enfant>();
       foreach(var one in ef){
          pr.enfants.add(one);
       }
     
       db.Parent.add(pr);
       db.SaveChange();
    ....   
    }
    C'est bien gentil, mais tu devrais essayer....

    D'abord, puisqu'EntityFramework associe effectivement parent et enfant, pourquoi passer un tableau enfant en plus du parent?

    Ensuite, la collection d'enfants, elle vient d'où? Comment tu fais pour créer une collection d'entités coté client, sans envoyer au serveur chaque enfant un par un d'abord?

    Désolé, ce n'est pas une solution, parceque ce n'est pas réaliste.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par BernieG Voir le message
    C'est bien gentil, mais tu devrais essayer....

    D'abord, puisqu'EntityFramework associe effectivement parent et enfant, pourquoi passer un tableau enfant en plus du parent?

    Ensuite, la collection d'enfants, elle vient d'où? Comment tu fais pour créer une collection d'entités coté client, sans envoyer au serveur chaque enfant un par un d'abord?

    Désolé, ce n'est pas une solution, parceque ce n'est pas réaliste.
    Voila un Exemple Complète et marche 100%

    Parent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class Parent
        {
            public int ID { get; set; }
            public string Libelle { get; set; }
            public IList<Enfant> Enfants { get; set; }
        }
    Enfant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       public class Enfant
        {
            public int ID { get; set; }
            public string Nom { get; set; }
            public int Prenom { get; set; }
        }
    Controlleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
           [HttpPost]
            public ActionResult Create(Exemple.Models.Parent parent){
     
    .....
     
                return View();
            }
    Client :

    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
     
    @model Exemple.Models.Parent
     
    @{
        ViewBag.Title = "Create";
    }
     
    <h2>Create</h2>
    @using (Html.BeginForm())
    {
        @Html.LabelFor(t => t.Libelle)
       <input name="parent.Libelle" value="" />
     
        //exemple
        //Enfant 1
        <label>nom</label>
        <input name="parent.Enfants[0].Nom" value="" />
        <label>prenom</label>
        <input name="parent.Enfants[0].Prenom" value="" />
        //Enfant 2
        <label>nom</label>
        <input name="parent.Enfants[1].Nom" value="" />
        <label>prenom</label>
        <input name="parent.Enfants[1].Prenom" value="" />
        .....
        <button type="submit">
            Save
        </button>
    }

  17. #17
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par ykhales Voir le message
    Voila un Exemple Complète et marche 100%

    Parent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class Parent
        {
            public int ID { get; set; }
            public string Libelle { get; set; }
            public IList<Enfant> Enfants { get; set; }
        }
    Enfant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       public class Enfant
        {
            public int ID { get; set; }
            public string Nom { get; set; }
            public int Prenom { get; set; }
        }
    Controlleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
           [HttpPost]
            public ActionResult Create(Exemple.Models.Parent parent){
     
    .....
     
                return View();
            }
    Client :

    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
     
    @model Exemple.Models.Parent
     
    @{
        ViewBag.Title = "Create";
    }
     
    <h2>Create</h2>
    @using (Html.BeginForm())
    {
        @Html.LabelFor(t => t.Libelle)
       <input name="parent.Libelle" value="" />
     
        //exemple
        //Enfant 1
        <label>nom</label>
        <input name="parent.Enfants[0].Nom" value="" />
        <label>prenom</label>
        <input name="parent.Enfants[0].Prenom" value="" />
        //Enfant 2
        <label>nom</label>
        <input name="parent.Enfants[1].Nom" value="" />
        <label>prenom</label>
        <input name="parent.Enfants[1].Prenom" value="" />
        .....
        <button type="submit">
            Save
        </button>
    }
    Fais un exemple et mets-le quelque part où on peut le télécharger. Je ne demande qu'à apprendre, mais ce que tu viens d'écrire ne peut pas fonctionner, pour plusieurs raisons que je te laisse découvrir.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par BernieG Voir le message
    Fais un exemple et mets-le quelque part où on peut le télécharger. Je ne demande qu'à apprendre, mais ce que tu viens d'écrire ne peut pas fonctionner, pour plusieurs raisons que je te laisse découvrir.
    voila un petit exemple j'ai pas utilisé la base de donné mais le résultat et afficher correctement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://www.2shared.com/file/F5mMJpj4/Exemple.html

  19. #19
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par ykhales Voir le message
    voila un petit exemple j'ai pas utilisé la base de donné mais le résultat et afficher correctement
    Sans base de données, on peut faire beaucoup de choses qui ne veulent rien dire, et surtout, afficher est facile. Créer les enregistrements est une autre histoire.

    Je répète: ça peut sembler trés simple en apparence, en réalité c'est tout autre chose. Cherche des exemples avec google, et dis moi ce que tu trouves... j'ai cherché, en français et en anglais. On trouve des questions, mais je n'ai pas trouvé un seul exemple. Il y a en a peut-être, mais je n'ai pas trouvé. Un signe que c'est pas si simple....

  20. #20
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2013
    Messages : 76
    Points : 143
    Points
    143
    Par défaut
    Citation Envoyé par BernieG Voir le message
    Sans base de données, on peut faire beaucoup de choses qui ne veulent rien dire, et surtout, afficher est facile. Créer les enregistrements est une autre histoire.

    Je répète: ça peut sembler trés simple en apparence, en réalité c'est tout autre chose. Cherche des exemples avec google, et dis moi ce que tu trouves... j'ai cherché, en français et en anglais. On trouve des questions, mais je n'ai pas trouvé un seul exemple. Il y a en a peut-être, mais je n'ai pas trouvé. Un signe que c'est pas si simple....

    Je ne vois aucun problème pour ajouter la sauvegarde en base de donnée.
    J'ai essayer sur son exemple avec entity framework (CF).
    L'action contient juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     [HttpPost]
            public ActionResult Create(Parent parent)
            {
                if (ModelState.IsValid)
                {
                    db.Parents.Add(parent);
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
     
                return View(parent);
            }
    Et j'ai bien parent et enfants en base de données. Après faut m'expliquer où est la complexité et l'impossibilité de le faire.

Discussions similaires

  1. [MySQL] Insertion dans deux tables au même temps
    Par roy2work dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/10/2013, 23h58
  2. [AC-2007] Enregistrer dans deux tables en même temps.
    Par vadorequest dans le forum IHM
    Réponses: 4
    Dernier message: 24/02/2011, 09h09
  3. Insertion dans deux Tables en même temps
    Par hajoura89 dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 19/08/2010, 00h10
  4. Ajouter dans deux tables
    Par mikedimoi dans le forum Débuter
    Réponses: 4
    Dernier message: 11/01/2006, 20h49
  5. Comptez sur deux tables en même temps
    Par genova dans le forum Langage SQL
    Réponses: 12
    Dernier message: 13/09/2004, 18h58

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