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

Silverlight Discussion :

Mettre a jours une base via Silverlight


Sujet :

Silverlight

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Février 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut Mettre a jours une base via Silverlight
    Bonjours,

    J'utilise Silverlight4, Framework4, VisualStudio Ultimate 2010, SQLServer 2008R2.

    J'ai un petit soucis, je ne comprend pas l'update en Silverlight.

    J'utilise un ADO.NET entities pour acceder au donner.

    Je remplie a l'aide d'une application (formulaire sur SharePoint) fait en silverlight une base de donnée PERSONNEL.

    Dans une autre application (aussi un formulaire, le meme) je recupere mes informations et je re-remplie les champs pour que les personnes puisse modifier. Pour obtenir ces informations j'ai fait une requete pour obtenir Nom et Prenom de la personne afin de les mettres dans une combobox (pour choisir la personne), puis grace a ces nom + prenom, je fait une requete qui me donne l'ID de la personne, et grace a cette ID je rempli facilement mes champs.

    Je doit utiliser 2 application differente, car les personne qui modifie ne sont pas les meme qui rentre les données, et surtout c'est lier a des vues sur les composants Wep-Part.

    Voila mon contexte.

    Du coup mon formulaire est bien remplie dynamiquement (j'ai lier ma table personnel grace a un connecteur ADO.NET).
    J'ai donc mon servicePersonnel qui contient SELECT,UPDATE,INSERT.

    Lors de mon remplissage de formulaire.
    A la fin de la modification lors de l'appuis sur le bouton, un objet de type Personnel est creer (avec l'ID que j'ai utiliser pour remplir les champs), je souhaite donc faire un update dans ma table grace a cette objet personnel.
    Ou bien faire un update champs par champs correspondant a l'ID que j'ai recuperer.

    Quand je fait mes recherches sur le net je ne trouve QUE des chose qui me dise "Aprés vos modifications de champs faire un bouton avec comme code seulement datacontext.submitchanges()".
    Alors je ne comprend pas, j'ai bien un datacontext (DomainServicePersonnel) mais quand je fait SubmitChange() cela ne fait rien (ce qui est logique car j'ai aucune Personne de selectionner dans ma table).

    voila mon code pour recupere nom + prenom, ID, Personne
    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
     
            [OperationContract]
            public List<string> getNomPrenom()
            {
                List<string> NomPrenom = new List<string>();
                List<int> IDs = new List<int>();
                DomainServicePersonnel dc = new DomainServicePersonnel();
                var AllID = (from id in dc.GetPersonnel() select id.p_id);
                IDs = AllID.ToList();
                foreach (int i in IDs)
                {
                    string Nom = (from nom in dc.GetPersonnel() where nom.p_id == i select nom.p_nom).FirstOrDefault();
                    string Prenom = (from prenom in dc.GetPersonnel() where prenom.p_id == i select prenom.p_prenom).FirstOrDefault();
                    NomPrenom.Add(Nom + " - " + Prenom);
                }
                return NomPrenom;
            }
     
            [OperationContract]
            public int getID(string nom, string prenom)
            {
                DomainServicePersonnel dc = new DomainServicePersonnel();
                var id = (from result in dc.GetPersonnel() where result.p_nom == nom select result.p_id).FirstOrDefault();
                return id;
            }
     
            [OperationContract]
            public Personnel getPersonne(int id)
            {
                DomainServicePersonnel dc = new DomainServicePersonnel();
                return (from pers in dc.GetPersonnel() where pers.p_id == id select pers).FirstOrDefault();
            }
    Que dois-je changer ? Je suis sur la fin de mon projet il ne me reste que la modification a finir, je me suis peux etre mal prit dés le depart ?

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Le lien entre Silverlight et ta BD est fait avec quoi ? Un service WCF ?

    En gros il faut rajouter ton employe nouvellement crée dans ta collection d'employe et appeler la methode SubmitChanges de ton model.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Février 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Je la recupere par un Service que j'ai creer oui.

    Comment rajouter dans la collection ?

    Car j'ai reussi a faire ceci mais c'est pas genial dans le temps (car sa bouffe les ID).

    Je creer une personne1 au moment de mon remplissage des champs (donc la personne avant changement).
    Au moment ou je veux faire mon "update" je creer une personne2 avec les nouveau champs modifier, j'attache la personne1, ensuite je fait un remove, puis aprés je fait un add avec la personne2. Ce qui n'est pas genial car au bout d'un moment tout les ID serons bouffer ^^

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Pour faire un update faut pas faire un remove puis un add. Je sais pas ou tu as trouve cette technique...

    Tu modifie l'entite que tu veux updater, ensuite tu l'envoie a ton WCF, tu l'attaches a ton contexte et tu updates.

    Je crois qu'avant d'update il faut aussi specifier que ses champs ont ete modifiees sinon l'update ne se fera pas (fais une recherche sur google pour voir comment on fait).

Discussions similaires

  1. mettre a jour une base de donné MySQL distante
    Par gasper06 dans le forum Installation
    Réponses: 0
    Dernier message: 20/01/2008, 14h27
  2. Réponses: 4
    Dernier message: 15/01/2008, 16h36
  3. Mettre à jour une base via un tableau HTM
    Par basketime dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/03/2007, 15h18
  4. Mettre à jour une base de données depuis un pc
    Par Death83 dans le forum MATLAB
    Réponses: 11
    Dernier message: 12/11/2006, 17h58
  5. Réponses: 2
    Dernier message: 10/08/2006, 09h44

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