C# 如何防止在表中插入相同名称和NricNo数据?

C# 如何防止在表中插入相同名称和NricNo数据?,c#,sql,sql-server-2008,C#,Sql,Sql Server 2008,桌子 这张桌子我有点问题。ID是这个表的主键,但我需要命名,NricNo也要唯一。这意味着表不能有重复的Name和NricNo值。我正在VisualStudio2010中进行此操作,需要帮助。谢谢:)您只需使用此查询更改表即可 更改表格 添加约束UNIQUE(); 去 --例如: 更改表MyTable 添加约束AK_MyTable UNIQUE(名称,NricNo); 这一切都取决于您如何进行数据库交互。如果您使用的是实体框架,只要您没有创建具有相同值的新对象,就可以了 无论哪种方式,您都可以通

桌子


这张桌子我有点问题。ID是这个表的主键,但我需要命名,NricNo也要唯一。这意味着表不能有重复的Name和NricNo值。我正在VisualStudio2010中进行此操作,需要帮助。谢谢:)

您只需使用此查询更改表即可

更改表格 添加约束UNIQUE(); 去

--例如: 更改表MyTable 添加约束AK_MyTable UNIQUE(名称,NricNo);
这一切都取决于您如何进行数据库交互。如果您使用的是实体框架,只要您没有创建具有相同值的新对象,就可以了


无论哪种方式,您都可以通过向数据对象添加ID字段来帮助自己。如果您使用的是ADO.NET,请检查保存方法中的ID。如果它不等于默认值(您应该将其默认为-1以确保安全),则更新,否则插入。将您的保存保存在try/catch块中,因为对于表上的UNIQUE约束,如果您尝试插入与UNIQUE键冲突的记录,那么它将抛出错误。如果您使用实体框架,大部分内容都可以为您处理,但您的保存方法中仍应包含try/catch。

只需在字段组合上添加一个唯一的约束。其语法是什么?谢谢。这在SQLServer2008中有效吗?应该可以。如果您想绝对确定,msdn页面顶部有一个选择器,用于选择SQL Server或Visual Studio的版本。以下是2008版的链接:
ID   | Name | NricNo
1    | Joshua | S1234567A
2    | Joshua | S1234567A