在保存按钮上实现检查可用性功能

时间:2016-09-09 10:55:04

标签: c# asp.net

我创建了一个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>";
        }
    }

当用户点击检查可用性链接按钮时,它工作正常。还有另一个按钮“保存”,用于将用户信息保存在表格中。现在我的问题是,如果它显示“此用户名已被其他用户使用”。消息信息仍保存在数据库中。请告诉我如何防止这种情况!!!

1 个答案:

答案 0 :(得分:1)

您可以根据数据库中是否存在用户名返回truefalse。您可以创建一个检查用户可用性的方法。

当用户按下保存按钮时,如果方法返回true,则表示用户存在,您将调用该方法。

private bool CheckUserAvailability()
{
        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>";
            return true;
            }
            else
             {
              valDuplicatePassword.Visible = true;
              valDuplicatePassword.Text = "<b>Congratulations! " + txtLoginEmailAddress.Text + " is available.</b>";
              return false;
            }
 }

您也可以在link点击上调用此方法。

protected void lnkCheckAvailable_Click(object sender, EventArgs e)
{
     CheckUserAvailability();
}

如果用户不存在,则在Save按钮上调用此方法,而不是在数据库中保存信息。

protected void Savebtn_Click(object sender, EventArgs e)
{
   if(CheckUserAvailability() == false)
   {
    SaveUserInfoToDataBase();
   }
}