[英]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.