没有重复的主键

时间:2011-10-16 01:06:23

标签: c# sql primary-key

我正在开展学校活动。这是我的样本表格:

sample form http://i53.tinypic.com/14xlrl.png

我想要做的是,当用户添加一个具有相同CourseID(主键)的记录并列出其中一个记录时,应该会出现一些消息框,显示“无法插入相同的CourseID”或者不能复制CourseID(因为PRIMARY KEY不能重复)。“

3 个答案:

答案 0 :(得分:4)

我相信你是手动插入CourseID。更好的方法是在SQL Server中使CourseID列自动递增。

其次,如果您认真创建了主键,则不会接受重复。你只需要捕获异常。检查异常处理上的这些链接:

Throwing Exceptions in C#

Exceptions and Exception Handling (C# Programming Guide)

答案 1 :(得分:1)

您的Course_ID列似乎是多余的。建议:删除Course_ID并使用有意义的名称在Course_Code上声明唯一约束。当更新导致重复Course_ID值时,DBMS将自动拒绝更新并生成错误。您应确保应用程序公开此错误,包括有意义的名称,以便您的应用程序正常处理。

答案 2 :(得分:0)

正如其他人所说,不要让用户输入主键。但是,如果你真的必须。

Select Count(*) from tablename where CourseID = [whatever]

如果Count返回1,则表示已存在具有该id的记录,并抛出错误。

另一种方法是尝试插入一个异常的Insert函数,然后处理它。