C# 没有重复的主键

C# 没有重复的主键,c#,sql,primary-key,C#,Sql,Primary Key,我正在参加一项学校活动。这是我的样本表格: 我想做的是,当用户添加一条与列出的记录之一具有相同CourseID(主键)的记录时,会出现一些消息框,上面会显示“无法插入相同的CourseID或无法复制CourseID(因为主键无法复制)。”我相信您是在手动插入CourseID。更好的方法是在SQL Server中使CourseID列自动递增 其次,如果您认真创建了主键,它将不接受重复的主键。您只需要捕获异常。检查以下有关异常处理的链接: 我相信您正在手动插入CourseID。更好的方法是在SQ

我正在参加一项学校活动。这是我的样本表格:


我想做的是,当用户添加一条与列出的记录之一具有相同CourseID(主键)的记录时,会出现一些消息框,上面会显示“无法插入相同的CourseID或无法复制CourseID(因为主键无法复制)。”

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

其次,如果您认真创建了主键,它将不接受重复的主键。您只需要捕获异常。检查以下有关异常处理的链接:


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

其次,如果您认真创建了主键,它将不接受重复的主键。您只需要捕获异常。检查以下有关异常处理的链接:


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

Select Count(*) from tablename where CourseID = [whatever]
如果Count返回1,则表示已经有一个id为的记录,并抛出一个错误


另一种方法是尝试插入函数,该函数应引发异常,然后处理该异常。

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

Select Count(*) from tablename where CourseID = [whatever]
如果Count返回1,则表示已经有一个id为的记录,并抛出一个错误


另一种方法是尝试插入函数,该函数应引发异常,然后处理该异常。

您的
课程ID
列看起来是多余的。建议:删除
Course\u ID
,并使用有意义的名称声明
Course\u code
上的唯一约束。当更新将导致重复的
课程ID
值时,DBMS将自动拒绝更新并生成错误。您应该确保将此错误暴露给您的应用程序,包括有意义的名称,以便您的应用程序优雅地处理。

您的
课程ID
列看起来是多余的。建议:删除
Course\u ID
,并使用有意义的名称声明
Course\u code
上的唯一约束。当更新将导致重复的
课程ID
值时,DBMS将自动拒绝更新并生成错误。你应该确保这个错误暴露在你的应用程序中,包括有意义的名称,以便你的应用程序优雅地处理。

我们很多人都知道答案,但是你尝试过什么?我不想说,但我知道有两件事没有尝试过,了解主键约束和错误检查…以及当您尝试执行此操作时,应用程序中当前发生的情况?撞车?即使是重复的记录也会被插入吗?请编辑您的问题以添加此信息(以及John的-我也同意他的问题)。@albanx Merlyn无法删除您的评论。在吸引多个标志后,它被系统删除。这里唯一的不尊重是你的。是的,是的,这是所有人都说的,通过系统,我们很多人都知道答案,但你尝试了什么?我不想说,但我知道有两件事没有尝试过,学习主键约束和错误检查…当你尝试这样做时,你的应用程序中当前发生了什么?撞车?即使是重复的记录也会被插入吗?请编辑您的问题以添加此信息(以及John的-我也同意他的问题)。@albanx Merlyn无法删除您的评论。在吸引多个标志后,它被系统删除。这里唯一的不尊重是你的。是的,是的,这是所有人说的,通过系统