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 :

Problème d'ajout dans la base depuis un formulaire


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 72
    Points : 37
    Points
    37
    Par défaut Problème d'ajout dans la base depuis un formulaire
    Bonsoir,

    J'ai entrain de developper une application ASP.NET MVC3 (C#).

    Je veux inserer des valeurs dans une table dans ma base (SQL SERVER 2005) en utilisant un formulaire.

    Le probleme est que les text box (déclarés dans le View) ne sont pas reconnus dans mon Model comme il est montré dans cette image :





    Voici Le Controlleur :

    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
    using System;
    using System.Collections.Generic;
    using System.Globalization;
    using System.Linq;
    using System.Security.Principal;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Security;
    using System.Web.UI;
    using MvcApplication2.Models;
    using System.Data;
    using System.Data.SqlClient;
     
     
    using System.Text.RegularExpressions;
     
     
     
     
        [HandleError]
        public class AccountController : Controller
        {
    [AcceptVerbs(HttpVerbs.Post)]
            public ActionResult AddPoste(MvcApplication2.Models.AddPosteModel pm)
            {
     
     
     
     
                if (!ModelState.IsValid)
                {
     
     
                    int _records = pm.InsertPoste(pm.ID_Poste, pm.nom_Poste, pm.Application, pm.In_Po, pm.Out_Po, pm.Etat, pm.ID_Ligne, pm.Mouvement);
                    if (_records > 0)
                    {
                        return RedirectToAction("Index", "Home");
                    }
                    else
                    {
                        ModelState.AddModelError("", "Can Not Insert");
                    }
     
                }
     
                return View();
     
            }
    }
    et voici le Model :

    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Globalization;
    using System.Web.Mvc;
    using System.Web.Security;
    using System.ComponentModel.DataAnnotations;
    using System.Data.SqlClient;
     
     
     
    namespace MvcApplication2.Models
    {
    public class AddPosteModel
        {
            [Required]
            [Display(Name = "ID_Poste :")]
            public string ID_Poste { get; set; }
     
            [Required]
            [Display(Name = "nom_Poste:")]
            public string nom_Poste { get; set; }
     
            [Required]
            [Display(Name = "Application :")]
            public string Application { get; set; }
     
            [Required]
            [Display(Name = "In_Po :")]
            public string In_Po { get; set; }
     
            [Required]
            [Display(Name = "Out_Po :")]
            public string Out_Po { get; set; }
     
            [Required]
            [Display(Name = "Etat :")]
            public string Etat { get; set; }
     
            [Required]
            [Display(Name = "ID_Ligne :")]
            public string ID_Ligne { get; set; }
     
            [Required]
            [Display(Name = "Mouvement :")]
            public string Mouvement { get; set; }
     
            public int InsertPoste(string ID_Poste, string nom_Poste, string Application, string In_Po, string Out_Po, string Etat, string ID_Ligne, string Mouvement)
            {
                SqlConnection cn = new SqlConnection(@"Data Source = SWEET-DE396641E \ SQLEXPRESS; User Id = adminUser; Password = adminUser; Initial Catalog = Gamme");
                cn.Open();
     
     
                string sqlquery = ("Insert Into Users(ID_Poste, nom_Poste, Application, In_Po, Out_Po, Etat, ID_Ligne, Mouvement)Values(@ID_Poste, @nom_Poste, @Application, @In_P, @Out_P, @Etat, @ID_Ligne, @Mouvement)");
                SqlCommand cmd = new SqlCommand(sqlquery, cn);
     
                // SqlCommand cmd = new SqlCommand("Insert Into Users(Matricule, Nom_User,PassWord, Type_User )Values('" + Matricule + "','" + Nom_User + "','" + passWord + "','" + Type_User + "')", cn);
                //SqlCommand cmd = new SqlCommand("Insert Into Users(Matricule, Nom_User,PassWord, Type_User )Values('user2','anouar','anouar','Admin')", cn);
                //cmd.Parameters.AddWithValue("@ID_Poste", TextBox1.Text);
     
                cmd.Parameters.Add(new SqlParameter("@ID_Poste", TextBox1.Text));
                cmd.Parameters.Add(new SqlParameter("@nom_Poste", TextBox2.Text));
                cmd.Parameters.Add(new SqlParameter("@Application", TextBox3.Text));
                cmd.Parameters.Add(new SqlParameter("@In_Po", TextBox4.Text));
                cmd.Parameters.Add(new SqlParameter("@Out_Po", TextBox5.Text));
                cmd.Parameters.Add(new SqlParameter("@Etat", TextBox6.Text));
                cmd.Parameters.Add(new SqlParameter("@ID_Ligne", TextBox7.Text));
                cmd.Parameters.Add(new SqlParameter("@Mouvement", TextBox8.Text));
                return cmd.ExecuteNonQuery();
            }
        }
    }
    et enfin le View :

    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
    <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
     
    <%@ Register assembly="DevExpress.Web.v10.2, Version=10.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxNavBar" tagprefix="dx" %>
     
    <%@ Register assembly="DevExpress.Web.ASPxEditors.v10.2, Version=10.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxEditors" tagprefix="dx" %>
     
    <asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
     <script type="text/javascript" src="~/Scripts/jquery.leanModal.min.js"></script>
     
        <form id="form1" runat="server">
        <h2><%= Html.Encode(ViewData["Message"]) %> 
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
            <dx:ASPxButton ID="ASPxButton1" runat="server" ClientIDMode="AutoID" 
                CssFilePath="~/App_Themes/BlackGlass/{0}/styles.css" CssPostfix="BlackGlass" 
                Height="16px" SpriteCssFilePath="~/App_Themes/BlackGlass/{0}/sprite.css" 
                Text="Ajouter un poste" Width="529px">
            </dx:ASPxButton>
     
     
        </h2>
     
        </form>
     
    </asp:Content>
    Que dois-je faire ? Aidez SVP ! j'attends vos réponses merci !

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut
    Citation Envoyé par pizzaman Voir le message
    Le probleme est que les text box (déclarés dans le View) ne sont pas reconnus dans mon Model
    C'est normal car comme tu le précises les textbox sont déclarées dans la vue. Utilise les propriétés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.Parameters.Add(new SqlParameter("@ID_Poste", this.ID_Poste));
    D'ailleurs, je comprend pas pourquoi tu n'as pas au moins utilisé les paramètres passés lors de l'appel de InsertPoste.

    Normalement avec MVC le model arrive dans le contrôleur valorisé. Il ne te resterait à faire que MaCoucheAccesDonnees.Insert(monInstancePosteModel).

    Sinon, les objets du model ne devrait pas avoir de logique de persistance. Dans une certaine mesure on peut avoir une logique de validation mais c'est tout. Il faut qu'ils restent indépendants.

    A+

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 72
    Points : 37
    Points
    37
    Par défaut
    Merci,
    oui je veux inserer en utilisant cette méthode de MVC mais je n'arrive pas,,,pouvez vous mieux expliquer SVP :
    MaCoucheAccesDonnees????
    monInstancePosteModel????

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par pizzaman Voir le message
    MaCoucheAccesDonnees????
    C'est une classe que tu n'as pas encore qui permet de réaliser les opérations de création, lecture, mise à jour et suppression en base de données.

    Citation Envoyé par pizzaman Voir le message
    monInstancePosteModel????
    C'est une instance de AddPosteModel.

    Tu peux lire ce tuto: http://immobilis.developpez.com/arti...sp-net/#LIII-D

Discussions similaires

  1. Problème d'ajout dans la base de données
    Par momy2014 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 19/01/2015, 10h59
  2. [Débutant] Problème d'ajout dans la base
    Par pizzaman dans le forum ASP.NET
    Réponses: 1
    Dernier message: 20/04/2013, 12h19
  3. Problème d'ajout dans la base de donnée
    Par minouchaimen dans le forum Doctrine2
    Réponses: 2
    Dernier message: 11/03/2013, 18h27
  4. tOracleSCD, problème d'ajout dans la base
    Par NTeeN dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 04/06/2009, 11h43
  5. Problème d'ajout dans base Access
    Par iziwas dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/02/2009, 12h05

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