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

Développement Web avec .NET Discussion :

Modification base de donnée


Sujet :

Développement Web avec .NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Modification base de donnée
    Bonjour,

    Je débute en ASP.net.
    Je souhaiterais pouvoir modifier le nom d'un utilisateur dans la base de donnée local créer avec Code First.

    "User" est la table dans laquelle je souhaite faire la modification.

    Le code de la vue:
    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
     
    <section id="EditName">
            @using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) {
                @Html.AntiForgeryToken()
                @Html.ValidationSummary(true)           
                <fieldset>
                    <ol>
                        <li>
                            @Html.LabelFor(m => m.Name)
                            @Html.TextBoxFor(m => m.Name)
                            @Html.ValidationMessageFor(m => m.Name)
                        </li>
                    </ol>
                    <input type="submit" value="Modifier" />
                </fieldset>
             }
        </section>
    Le code du controller:
    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
     
            [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Edit(User model, string returnUrl)
            {
     
                using (UserEntities dc = new UserEntities())
                {
                    int userID = int.Parse(string.Format("{0}",Session["logedUserId"]))
                    var User = (from u in dc.User
                                  where u.UserID == userID
                                  select u).FirstOrDefault();
     
                    if (model.Name != "")
                    {
                        User.Name = model.Name; 
                    }
     
                    dc.SaveChanges();
                }
            }
    Mais une erreur se produit sur:
    User.Name = model.Name;

    message erreur:
    Description : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.


    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Salut,

    Pour ton erreur cela veut dire que ton "user" retourner pas ta requête linq est null.

    Essai de débugger et de regarder la valeur de "userId" et "user".

    Pour éviter d'utiliser la sessions tu peux utiliser les HiddenInputns en MVC. Grace à cela tu conserve l'id de ton user sur ton formulaire.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Donc effectivement "User" retourner pas la requête linq est null et userId n'avais pas un Id valide.

    Mais j'ai remplacé le userId par la bonne valeur directement dans la requête et "User" est toujours null.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    L'erreur viendrais peux être pas de la requête mais de la base de données, car une table que
    je n'ai pas définie "People" dans Models a été généré et semble être en lien avec la table "User" qui a aussi été généré,
    car "People" contient exactement toute les entité définie dans "User", mais quand je regarde les valeur enregistré
    dans les table, je vois Que "User" contient les données que je souhaite récupérer avec la requête et "People" na aucune
    valeur, donc peux être que si un lien a été créé pendant la création de la base, lors de l’exécution de la requête cela irais chercher les valeurs dans
    "People" et retounerais null car il ni a aucune valeur, mais je ne vois absolument pas pourquoi cet seconde table a été généré, ni ou pourrais se trouver se lien.

  5. #5
    Membre habitué Avatar de linke
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 119
    Points : 139
    Points
    139
    Par défaut
    salut
    ça dépend de ta méthode de gestion de données, parfois le modèle peut créer des tables si elles existe pas .
    pour éviter tous ce bazar, il fait faire des teste unitaire.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Donc l'erreur venais bien de la, j'ai modifier la base de données et maintenant tous fonctionne

Discussions similaires

  1. modification base de données
    Par ozaland dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/06/2011, 15h09
  2. Modification Bases de données
    Par Greos dans le forum Développement
    Réponses: 12
    Dernier message: 18/10/2010, 15h26
  3. Modification base de données
    Par Astro8899 dans le forum VB.NET
    Réponses: 2
    Dernier message: 19/04/2010, 21h28
  4. [MySQL] Problème modification Base de données
    Par TiGeR33600 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 30/10/2008, 17h02
  5. [MySQL] problème de modification (base de données)
    Par djey08 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/05/2007, 11h26

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