我做了登记表。创建帐户的某些功能必须是唯一的。例如用户名。它在名为“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");
}
}
什么都没发生。没有显示消息。
任何解决方案都会很棒。
答案 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。