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é