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 :

[Débutant] Problème requête Update


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 70
    Par défaut [Débutant] Problème requête Update
    Bonjour,

    je voudrais mettre à jour une ligne d'une table de ma base de données. J'utilise pour cela un DetailsView.

    La table est liée avec la table générée automatiquement aspnet_users via le champ user_id.

    Voici le SqlDataSouce:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:csBD %>"
            SelectCommand="SELECT * FROM [user_data] WHERE ([UserId] = @UserId)" 
            UpdateCommand="UPDATE [user_data] SET [nom] = @nom, [prenom] = @prenom, [adresse] = @adresse, [ville] = @ville, [pays] = @pays, [zip] = @zip WHERE [UserId] = @UserId">
            <UpdateParameters>
                <asp:Parameter Name="nom" Type="String" />
                <asp:Parameter Name="prenom" Type="String" />
                <asp:Parameter Name="adresse" Type="String" />
                <asp:Parameter Name="ville" Type="String" />
                <asp:Parameter Name="pays" Type="String" />
                <asp:Parameter Name="zip" Type="String" />
            </UpdateParameters>
        </asp:SqlDataSource>
    Et voici le code behind ajoutant le paramètre UserId à la requête Select et Update:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        protected void Page_Load(object sender, EventArgs e)
        {
                SqlDataSource1.SelectParameters.Add("UserId", Membership.GetUser().ProviderUserKey.ToString());
                SqlDataSource1.UpdateParameters.Add("UserId", Membership.GetUser().ProviderUserKey.ToString());
        }
    Le problème que je rencontre lorsque je fais la mise à jour est le suivant:
    The variable name '@UserId' has already been declared. Variable names must be unique within a query batch or stored procedure.

    Je ne comprends pas d'ou provient cette erreur d'autant que la ligne est mise à jour correctement.

    Si vous pouviez m'aider ?

    Merci.

    Auré

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(!Page.IsPostBack) {
    ... blabla add parameters ...
    }
    ?

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 70
    Par défaut
    Merci Kaidan (quelle rapidité).

    J'ai bien essayé mais cette fois il m'indique comme erreur:
    Must declare the scalar variable "@UserId".

    La mise à jour cette fois ne s'effectue pas

    Une idée de ce que ça peut être ?

    Merci.

    Auré.

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 70
    Par défaut
    J'ai trouvé la solution en faisant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlDataSource1.UpdateParameters.Add("UserId", Membership.GetUser().ProviderUserKey.ToString());
     
            if(!Page.IsPostBack) 
            {
                SqlDataSource1.SelectParameters.Add("UserId", Membership.GetUser().ProviderUserKey.ToString());
            }
        }
    Je ne comprends pas pourquoi ça fonctionne de cette manière.

    S'il y a une réponse ça m'intéresse de savoir.

    Merci.

    Auré

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

Discussions similaires

  1. Problème requète update, sql server 2000
    Par Guena5635 dans le forum Développement
    Réponses: 3
    Dernier message: 28/04/2008, 10h32
  2. [access 2003][débutante] problème avec update
    Par Milyshyn76 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 04/01/2008, 16h48
  3. [C#] Problème requête update via OdbcDataAdpter
    Par LE NEINDRE dans le forum ASP.NET
    Réponses: 12
    Dernier message: 16/06/2006, 11h52
  4. Problème Requête UPDATE (ou pas)
    Par mastasushi dans le forum Access
    Réponses: 7
    Dernier message: 03/05/2006, 08h42
  5. [MySQL] problème requête UPDATE
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 23/10/2005, 18h28

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