日期:2014-05-18  浏览次数:20353 次

求救!主键重复异常被自动忽略了?
我使用asp.net 2.0 和SQL server 2005开发网站,以前做的项目jsp+Mysql在注册新用户时,如果用户输入了与数据库重复的用户名,则会引发sql异常,我可以用try catch来捕获,这样很方便,但这次我在测试时故意输入重复用户名(主键)居然没发生任何错误,到sqlserver里一看原来数据库自动忽略了这一条记录,原来同主键的记录没变。我没有写过忽略重复主键的代码啊,如果这样的话,岂不是让用户无法知道自己是否注册成功了?十分不解,请高手为我解惑?

------解决方案--------------------
哦 那不知道了
你特别捕捉 sqlexception 异常看看,如果不行
就换一种方法吧,存的时候看相同的主键是否已经存在吧
------解决方案--------------------
数据库结构中你设置了忽略属性,你不设置就会报异常了。
------解决方案--------------------
如果你把用户名设置为唯一键约束,就会是你期待的结果了.