Message.show基于exception.Message

时间:2013-10-23 19:25:43

标签: c# message show

我做了登记表。创建帐户的某些功能必须是唯一的。例如用户名。它在名为“userreg”的TextBox中键入。如果在尝试创建新帐户时输入重复的用户名,我想创建自定义消息。在本演示中,我将使用用户名Admin。

默认: Message.Show(ex.Message)

我得到: 密钥'username_UNIQUE'重复输入'Admin'

所以我做了:

catch (Exception ex)
{
    if (ex.Message == "Duplicate entry ''" + userreg_text.Text + "'' for key 'username_UNIQUE'")
    {
        MessageBox.Show("Username already exists");
    }
}

什么都没发生。没有显示消息。

任何解决方案都会很棒。

1 个答案:

答案 0 :(得分:1)

抛出的异常具有以下Message

  

重复'username_UNIQUE'的重复输入'Admin'

您正在使用此"Duplicate entry ''" + userreg_text.Text + "'' for key 'username_UNIQUE'",这将导致:

  

键'username_UNIQUE'重复输入''Admin''

你在'Admin'两次使用撇号。

请改用:

"Duplicate entry '" + userreg_text.Text + "' for key 'username_UNIQUE'"

正如Jonesy和我所说的那样,有更好的方法来处理这种情况。

例如,您可以在数据库中搜索条目(在您的情况下:用户名'Admin'),如果返回值不为NULL,则显示MessageBox。