【发布时间】:2016-09-09 19:22:27
【问题描述】:
我在 aspx 表单中创建了一个链接按钮,用于检查登录电子邮件地址的可用性及其功能。
protected void lnkCheckAvailable_Click(object sender, EventArgs e)
{
SystemUserBL bl = new SystemUserBL(SessionContext.SystemUser);
ds = new DataSet();
bl.FetchForLoginEmailAddress(ds, txtLoginEmailAddress.Text);
if (ds.Tables[0].Rows.Count > 0)
{
valDuplicatePassword.Visible = true;
valDuplicatePassword.Text = "<b>This User Name is already in use by another user.</b>";
}
else
{
valDuplicatePassword.Visible = true;
valDuplicatePassword.Text = "<b>Congratulations! " + txtLoginEmailAddress.Text + " is available.</b>";
}
}
当用户单击检查可用性链接按钮时,它工作正常。还有另一个按钮“保存”,它将用户信息保存在表中。现在我的问题是,如果它显示“此用户名已被其他用户使用”。消息信息仍然保存在数据库中。请告诉我如何防止这种情况!!!
【问题讨论】:
-
你为什么把它作为两个独立的动作?用户名可能在您进行“检查可用性”检查时可用,但在您“保存”时可能已被其他人占用。我想不出先单独检查有什么好处。
-
只需禁用 If 块中的保存按钮。如果您想在保存时检查用户登录电子邮件,正如@Demien_The_Undeliever 所说,您可以在保存操作中进行检查并抛出错误。