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 :

Mettre une variable dans <asp:SqlDataSource


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut Mettre une variable dans <asp:SqlDataSource
    Bonjour à Tous,

    Dans le code-behind j'ai la variable : Int32 liPere_ID = 1000;

    Comment mettre cette variable dans VALUES d'InsertCommand, voici un exemple:

    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="dsEnfant_Inserer" runat="server" ConnectionString="<%$ ConnectionStrings:MaBaseConnectionString %>"
    	InsertCommand="INSERT INTO [Enfant] ([Pere_ID], [Prenom], [Date_Nais]) 
                    VALUES (@liPere_ID, @Prenom, @Date_Nais)"
    	SelectCommand="SELECT * FROM [Enfant]">
     
            <InsertParameters>
                <asp:FormParameter FormField="Pere_ID" Name="Pere_ID" Type="Decimal" />
                <asp:Parameter Name="Enfant_ID" Type="Int16" />
                <asp:Parameter Name="Prenom" Type="DateTime" />
                <asp:Parameter Name="Date_Nais" Type="DateTime" />
            </InsertParameters>
    </asp:SqlDataSource>
    ...

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    Bonjour,

    Tu pourras utiliser un control comme HiddenFiled qui aura comme valeur, la valeur de ta variable (liPere_ID).

    et dans ta page aspx, SqlDataSource va récuperer la valeur du control HiddenField.

  3. #3
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut
    Merci Redouane, je teste.

  4. #4
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut
    Redouane,

    En me documenant sur HiddenField j'ai pris l'exemple ci-dessous trouvé dans MSDN, malheureusement il me génère des erreurs.

    As-tu une idée? Merci encore.

    Erreurs:
    ---------
    1. 'System.Web.UI.HtmlControls.HtmlForm' ne contient pas de définition pour 'ValueHiddenField'

    2. 'System.Web.UI.HtmlControls.HtmlForm' ne contient pas de définition pour 'ValueTextBox
    ...

    Code: (Souce: http://msdn.microsoft.com/fr-fr/libr...ddenfield.aspx)
    ------
    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
    <%@ Page language="C#" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
     
      void ValueHiddenField_ValueChanged (Object sender, EventArgs e)
      {
     
        // Display the value of the HiddenField control.
        Message.Text = "The value of the HiddenField control is " + ValueHiddenField.Value + ".";
     
      }
     
    </script>
     
    <html  >
        <head runat="server">
        <title>HiddenField Example</title>
    </head>
    <body>
            <form id="Form1" runat="server">
     
                <h3>HiddenField Example</h3>
     
                Please enter a value and click the submit button.<br/>
     
                <asp:Textbox id="ValueTextBox"
                  runat="server"/>
     
                <br/>  
     
                <input type="submit" name="SubmitButton"
                 value="Submit"
                 onclick="PageLoad()" />
     
                <br/>
     
                <asp:label id="Message" runat="server"/>    
     
                <asp:hiddenfield id="ValueHiddenField"
                  onvaluechanged="ValueHiddenField_ValueChanged"
                  value="" 
                  runat="server"/>
     
            </form>
        </body>
    </html>
     
    <script type="text/javascript">
     
      <!--
      function PageLoad()
      {
     
        // Set the value of the HiddenField control with the
        // value from the TextBox.
        Form1.ValueHiddenField.value = Form1.ValueTextBox.value;
     
      }
      -->
     
    </script>

  5. #5
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    Bonjour,

    pas la peine de faire tout ça, tu vas insérer un hiddenfield dans ta page aspx, et ta vas remplir sa valeur avec celle de Pere_Id dans le code behind, ensuite tu vas changer dans le SqlDataSource de ta page l'appel des paramètres.

    Donc dans ta page aspx, t'aura qlq chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      <asp:HiddenField ID="HiddenField1" runat="server" />
            <asp:SqlDataSource ID="dsEnfant_Inserer" runat="server" ConnectionString="<%$ ConnectionStrings:MaBaseConnectionString %>"
                InsertCommand="INSERT INTO [Enfant] ([Pere_ID], [Prenom], [Date_Nais]) 
                    VALUES (@liPere_ID, @Prenom, @Date_Nais)" SelectCommand="SELECT * FROM [Enfant]">
                <InsertParameters>
                    <asp:ControlParameter ControlID="hdPereId" Name="Pere_ID" PropertyName="Value" Type="Decimal" />
                    <asp:Parameter Name="Enfant_ID" Type="Int16" />
                    <asp:Parameter Name="Prenom" Type="DateTime" />
                    <asp:Parameter Name="Date_Nais" Type="DateTime" />
                </InsertParameters>
            </asp:SqlDataSource>
    et dans le code behind, tu peux remplir ton hiddenField dans l'event Page_Load :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Int32 liPere_ID = 1000;
     
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                hdPereId.Value = liPere_ID.ToString();
        }
    essaye avec ça, et voir si ta 1 résultat positif.

  6. #6
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut
    Merci beaucoup Redouane tu viens de m'enlèver une épine dans mes neurones.
    Petite correction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    <asp:ControlParameter ControlID="hdPereID" Name="liPere_ID" Type="Decimal" PropertyName="Value" />
    ...
    Name="liPere_ID", le nom du paramètre liPere_ID doit correspondre à la colonne du VALUES (@liPere_ID.

    A+

  7. #7
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    désolé j'ai pas fais gaf
    bonne courage

    NB : je pense qu'il faut mettre résolu, si t'a trouvé la solution

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

Discussions similaires

  1. Mettre une variable dans un range
    Par guismoman33 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/11/2007, 14h05
  2. [Debutant] Mettre une variable dans un value
    Par kimar dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/06/2007, 14h33
  3. mettre une variable dans Target.Address
    Par lilemy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/06/2007, 15h47
  4. Réponses: 2
    Dernier message: 10/04/2007, 23h43
  5. [Excel]Mettre une variable dans une fonction
    Par soad029 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/04/2006, 12h00

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