大家好我们正在使用MVC3,并想知道如何停止在我的应用程序中输入相同的主键。我将主键设置为NVARCHAR(100)并且它可以允许控制台名称我需要一个模拟验证的reg x以防止用户再次输入相同的名称,谢谢
如果您需要更多信息,请询问
答案 0 :(得分:2)
正如我最近回答的那样,我建议不要使用varchar()和nvarchar()列作为主键。它们在连接和QueryById()操作上较慢,并且诱惑是允许编辑值(我也建议反对)。编辑主键很糟糕,因为列上有聚簇索引。如果您更改了足够的值,则会使索引倾斜并且必须重建。
最好使用IDENTITY列(SQL Server)或SEQUENCE(Oracle)并在Name列上设置UNIQUE约束。使用唯一约束,如果用户尝试输入重复的名称,数据库引擎将引发异常。您的代码应捕获异常并向用户显示相应的错误消息。
答案 1 :(得分:0)
我认为你不需要正则表达式。在将新记录添加到数据库之前,只需执行select
并检查它是否已存在。
和mgnoonan一样,使用varchars作为主键通常不是好习惯。每当我碰到它时,它最终都会引起问题。