0

GridView編集および削除アクションを実行するために、削除および編集リンク ボタンを作成しました。これは編集ボタンでは機能しますが、削除ボタンでは機能しません。何が問題ですか?

アプリケーションを実行すると、次のエラーが表示されます。

スカラー変数「@UserName」を宣言する必要があります

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
DataSourceID="SqlDataSource1">
<Columns>
<asp:CheckBoxField DataField="IsApproved" HeaderText="IsApproved"
SortExpression="IsApproved" />
<asp:BoundField DataField="UserName" HeaderText="UserName" 
SortExpression="UserName" />
<asp:CheckBoxField DataField="IsLockedOut" HeaderText="IsLockedOut" 
SortExpression="IsLockedOut" />
<asp:CommandField ShowEditButton="True" ShowDeleteButton="True" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>" 
SelectCommand="SELECT [IsApproved], [UserName], [IsLockedOut] FROM [vw_aspnet_MembershipUsers]" 
UpdateCommand="UPDATE [vw_aspnet_MembershipUsers] SET IsApproved = @IsApproved, IsLockedOut = @IsLockedOut WHERE (UserName = @UserName)"
DeleteCommand="DELETE FROM [vw_aspnet_MembershipUsers] WHERE (UserName = @UserName)">
<UpdateParameters>
<asp:Parameter Name="IsApproved" />
<asp:Parameter Name="IsLockedOut" />
<asp:Parameter Name="UserName" />
</UpdateParameters> 
<DeleteParameters>
<asp:Parameter Name="IsApproved" />
<asp:Parameter Name="IsLockedOut" />
<asp:Parameter Name="UserName" />
</DeleteParameters> 

</asp:SqlDataSource>
</asp:Content>
4

2 に答える 2

2

Membership.DeleteUser(user.UserName)を介して、またはストアドプロシージャを介して削除する必要があります[dbo].[aspnet_Users_DeleteUser]

http://www.salmontraining.com/SqlExpressZone/articles/deleting_users_from_membership.html

于 2012-05-26T00:53:14.043 に答える
0

私のアドバイスは、SQLDataSourceの「削除」イベントを処理することです。asp.netメンバーシップAPIを呼び出して、コードビハインドから削除します。

System.Web.Securityをインポートしてから、次のようにしてみてください。

    // Delete Membership User 
    Membership.DeleteUser(UserName);

ビューからレコードを削除することは、とにかく実際には最大のアプローチではありません。

于 2012-05-26T00:52:38.927 に答える