繁体   English   中英

ASP.NET:使用Gridview删除用户配置文件

[英]ASP.NET: Delete User Profile with Gridview

我有一个这样的SQL;

select B.LoweredUserName
  from USER_BAYI A, aspnet_Users B, aspnet_Membership C
  where B.UserId = C.UserId
  AND B.UserName = A.USERNAME

它正在我的会员数据库中获取所有用户名。

在此处输入图片说明

我想使用Gridview的delete属性,以便从我的会员数据库中删除该用户。

我在sqldatasource中的删除命令是;

DeleteCommand="DELETE FROM aspnet_Users
WHERE  LoweredUserName = @LoweredUserName" ondeleted="SqlDataSource1_Deleted"

protected void SqlDataSource1_Deleted(object sender, SqlDataSourceStatusEventArgs e)
    {
        DbCommand cmd = e.Command;
        string username = cmd.Parameters["@LoweredUserName"].Value.ToString();
        Membership.DeleteUser(username);
    }

但这甚至没有编译。 我在哪里做错了? 或您能告诉我一种方法吗?

像这样在GridView上设置DataKeyNames: DataKeyNames="ProviderUserKey" ,并将OnDeleteCommand设置为类似于以下方法: OnDeleteCommand="gvUser_DeleteCommand"

然后在后面的代码中实现如下的onDelete方法:

protected void rgUser_DeleteCommand(object source, GridCommandEventArgs e)
{
    GridDataItem gdiItem = (GridDataItem)e.Item;
    try
    {
        string strUserKey = gdiItem.GetDataKeyValue("ProviderUserKey").ToString();
        Guid guiUserKey = new Guid(strUserKey);
        string strUserName = Membership.GetUser(guiUserKey).UserName.ToString();

        Membership.DeleteUser(strUserName);
    }
    catch (Exception ex)
    {
        //handle exception
    }
}

仅为了获得更多信息,您将绑定到SqlDataSource上的错误事件。 删除记录后会触发OnDeleted事件,您需要OnDeleting事件,因为在删除记录之前会触发该事件。 OnDeleting事件中,您可以添加自定义删除代码,然后取消该事件,但不能在OnDeleted事件中进行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM