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 compréhension code [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Homme Profil pro
    .Net developer
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net developer

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 91
    Points
    91
    Par défaut Problème compréhension code
    Bonjour,

    Je suis stagiaire dans une boite d'intérim, et les différents buts de mon stage sont de leur faire une appli web de gestion des contacts/rdv/etc. ainsi que d'apprendre la programmation web en VB/ASP.net.

    J'ai un mal de chien pour le moment à comprendre pourquoi le code ne passe jamais par l'endroit que j'ai choisi.

    Un peu de code d'abord :

    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
     
     
    <%@ Page Title="Qui sommes-nous" Language="vb" MasterPageFile="~/Site.Master" AutoEventWireup="false"
        CodeBehind="About.aspx.vb" Inherits="WebApplication2.About" %>
     
        <script runat="server">
    Private Sub InsertClient (ByVal Source As Object, ByVal e As EventArgs)
      SqlDataSource4.Insert()
    End Sub
    </script>
     
    <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
    </asp:Content>
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
            <div id="FormulaireAjoutProspect" align="center">
                <asp:SqlDataSource ID="SqlDataSource4" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:schema_crmConnectionString %>" 
                    InsertCommand="INSERT INTO client (idClient, nomCompteClient, telCentral, typeCompte, FK_gestCompte) VALUES ('5','encoreuntest', '118218', 'Client', 1);" 
                    ProviderName="<%$ ConnectionStrings:schema_crmConnectionString.ProviderName %>" 
                    SelectCommand="SELECT * FROM client;"></asp:SqlDataSource>
     
     <table style="width:100%;">
                <tr>
                    <td style="height: 29px; width: 200px;" align="right" width="100">
                        Nom</td>
                    <td style="height: 29px; width: 200px;" align="left" width="150">
                        <input id="Text1" type="text" /></td>
                </tr>
    </table>
     
     
     
            <input id="Submit1" type="submit" value="Ajouter" style="width: 145px" onclick="InsertClient" />
            </div>
        </p>
    </asp:Content>



    Ma question : lorsque j’appuie sur le bouton "ajouter", j'aimerais qu'il rentre dans la fonction "InsertClient" (tout en haut du code^^). Pourquoi il ne le fait pas? Qu'ai-je mal fait?
    Si j'arrive à rentrer dans cette fonction, exécutera-t'il la requête SQL que j'ai mise (pour test)?

    Bonus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                <asp:SqlDataSource ID="SqlDataSource4" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:schema_crmConnectionString %>" 
                    InsertCommand="INSERT INTO client (idClient, nomCompteClient, telCentral, typeCompte, FK_gestCompte) VALUES ('?','@NomClient', '118218', 'Client', 1);" 
                    ProviderName="<%$ ConnectionStrings:schema_crmConnectionString.ProviderName %>" 
                    SelectCommand="SELECT * FROM client;">
     
    <InsertParameters>
    <asp:Parameter NomClient="Text1" Type="String" />
    </InsertParameters>
     
    </asp:SqlDataSource>
    Est-ce que ceci suffit pour que dans la BD, "nomCompteClient" soit rempli par la valeur que j'ai insérée dans le champ text1?
    Par quoi dois-je remplacer le '?' pour que l'idClient soit automatiquement incrémenté par la DB? (paramétrée pour que la clé primaire soit un ID auto-incrémenté). Dois-je simplement laisser ce champ vide?

  2. #2
    Membre actif Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Points : 284
    Points
    284
    Par défaut
    Le mieux à faire c'est de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input id="Submit1" type="submit" value="Ajouter" style="width: 145px" onclick="InsertClient" />
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:Button Text="Ajouter" runat="server" style="width: 145px" OnClick="InsertClient"></asp:Button>
    Pour ce qui est des parametres de sources de données je te conseille de lire l'article suivant

  3. #3
    Membre régulier
    Homme Profil pro
    .Net developer
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net developer

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 91
    Points
    91
    Par défaut
    /me va se pendre... Pendant une semaine, j'ai tout testé... Tout imaginé... Et c'était un bête problème de bouton. J'ai essayé de chipoter dans les droits d'accès à la DB. J'ai essayé de refaire le modèle plusieurs fois. Vu que j'utilise une DB MySQL, j'ai aussi lgtps cru qu'il y avait des problèmes de compatibilité.


    Au début j'ai directement essayé d'implémenter le modèle MVC. Mais ça plantait d'un peu partout, sans que je sache trop pourquoi. Je vais ré-essayer, et je viendrai ensuite reposer mes questions.

    Un tuto à me proposer qui gère le CRUD d'un projet web en VB.NET MVC2 avec une base de donnée MySQL? Parce qu'il existe énormément de cours/tutos, mais pas avec cette combinaison là. (MySQL... C'est pas très important, je crois que j'ai de toute façon bien compris maintenant les différences avec un SQL server).


    Sinon, un grand merci à toi g_tarik, tu gères



    édit :
    Citation Envoyé par patxy Voir le message
    Par quoi dois-je remplacer le '?' pour que l'idClient soit automatiquement incrémenté par la DB? (paramétrée pour que la clé primaire soit un ID auto-incrémenté). Dois-je simplement laisser ce champ vide?
    J'ai trouvé ce qui plantait de ce coté... J'avais oublié de mettre l'auto-incrémentation sur la table que je voulais joindre.


    re-édit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private Sub InsertClient (ByVal Source As Object, ByVal e As EventArgs)
    J'arrive pas à comprendre cette ligne de code. Et je pense que comprendre cette ligne m'aiderait p-e à comprendre pourquoi ce que je fais ne fonctionne pas comme je veux.

    Pour le moment j'en suis là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    InsertCommand="INSERT INTO client (nomCompteClient, telCentral, typeCompte, FK_gestCompte) VALUES (@TextBox1, '01118218', 'Client', 1);" 
     
                        <InsertParameters>
                            <asp:Parameter Name="TextBox1" Type="String" DefaultValue="Echec du test" />
                        </InsertParameters>

    Et chaque fois, la commande qui part est celle qui insère "Echec du test, 01118218, Client, 1".
    Je n'arrive toujours pas à copier ce que l'utilisateur a inséré au clavier dans la TextBox1 ( // dans le code de mon premier message, c'était Text1).



    Sinon, j'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                        <InsertParameters>
                            <asp:Parameter Name="TextBox1" formfield="TextBox1" Type="String" DefaultValue="Echec du test" />
                        </InsertParameters>
    Mais, lorsque je tente, je reçois comme erreur en voulant afficher la page dans mon browser que :
    Parser Error Message: Type 'System.Web.UI.WebControls.Parameter' does not have a public property named 'formfield'.

    Petite avancée : si je remplace <asparameter par <asp:formparameter, je n'ai plus la "parser error message".
    Cependant, c'est toujours "echec du test qui est envoyé", et non ce que j'avais inséré au clavier.

  4. #4
    Membre actif Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Points : 284
    Points
    284
    Par défaut
    essaie asp:controlparameter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:controlparameter name="UserName" controlid="TextBox1" propertyname="Text"/>

  5. #5
    Membre régulier
    Homme Profil pro
    .Net developer
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net developer

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 91
    Points
    91
    Par défaut
    ca marche niquel!
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème de Compréhension code VB .Net
    Par geekploy dans le forum VB.NET
    Réponses: 8
    Dernier message: 12/04/2013, 19h02
  2. [Débutant] Problème compréhension code XAML
    Par JolyLoic dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 26/08/2009, 17h00
  3. problème compréhension code
    Par mitherkiller dans le forum SDL
    Réponses: 3
    Dernier message: 13/04/2007, 09h38
  4. [MFC]Problème compréhension code
    Par bitardo dans le forum MFC
    Réponses: 1
    Dernier message: 23/05/2006, 15h56
  5. Probléme de code non portable
    Par Stany dans le forum Windows
    Réponses: 2
    Dernier message: 23/08/2005, 11h02

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