0

大家好,正在使用 MVC3 并且想知道如何停止在我的应用程序中输入相同的主键。我的主键设置为 NVARCHAR(100),它可以允许控制台名称我需要一个 reg x 的 simlar 验证,以防止用户再次输入相同的名称谢谢

如果您需要更多信息,请询问

4

2 回答 2

2

正如我最近回答的那样,我建议不要使用 varchar() 和 nvarchar() 列作为主键。它们在连接和 QueryById() 操作上速度较慢,而且很容易允许编辑值(我也建议不要这样做)。编辑主键是不好的,因为列上有一个聚集索引。如果您对这些值进行了足够多的更改,那么您将扭曲索引并且必须重新构建。

最好使用 IDENTITY 列 (SQL Server) 或 SEQUENCE (Oracle) 并在 Name 列上设置 UNIQUE 约束。使用唯一约束,如果用户尝试输入重复名称,数据库引擎将抛出异常。您的代码应该捕获异常并向用户显示适当的错误消息。

于 2012-04-05T22:06:04.390 回答
0

我不认为你需要一个正则表达式。在将新记录添加到数据库之前,只需执行 aselect并检查它是否已经存在。

和 mgnoonan 状态一样,使用 varchars 作为主键通常不是好的做法。每次我遇到它,它最终都会引起问题。

于 2012-04-06T04:07:18.020 回答