在vb.net中,如何确保数据表的唯一性(超过1列)?

在vb.net中,如何确保数据表的唯一性(超过1列)?,.net,datatable,unique,having,.net,Datatable,Unique,Having,我在VB.NET中工作。 我有一个DataTable,比如dt=newdatatable() 我有三个专栏,分别是TeacherID、SubjectID和TeachingGrade 现在,我想要[TeacherID-SubjectID]对,不要重复。 两者都是整数。 列的唯一设置,确保单独的唯一性,问题是。。 然后法律数据也被拒绝。 如何?将这些列设置为表的主键: DataTable dt = new DataTable(); DataColumn teacherIdColumn = dt.Co

我在VB.NET中工作。 我有一个DataTable,比如dt=newdatatable() 我有三个专栏,分别是TeacherID、SubjectID和TeachingGrade 现在,我想要[TeacherID-SubjectID]对,不要重复。 两者都是整数。 列的唯一设置,确保单独的唯一性,问题是。。 然后法律数据也被拒绝。
如何?

将这些列设置为表的主键:

DataTable dt = new DataTable();
DataColumn teacherIdColumn = dt.Columns.Add("TeacherId", typeof(int));
DataColumn subjectIdColumn = dt.Columns.Add("SubjectId", typeof(int));
dt.Columns.Add("TeachingGrade", typeof(int));
dt.PrimaryKey = new[] { teacherIdColumn, subjectIdColumn };
dt.Constraints.Add(new UniqueConstraint(new[] { teacherIdColumn, subjectIdColumn });

编辑:

还可以在表上创建约束:

DataTable dt = new DataTable();
DataColumn teacherIdColumn = dt.Columns.Add("TeacherId", typeof(int));
DataColumn subjectIdColumn = dt.Columns.Add("SubjectId", typeof(int));
dt.Columns.Add("TeachingGrade", typeof(int));
dt.PrimaryKey = new[] { teacherIdColumn, subjectIdColumn };
dt.Constraints.Add(new UniqueConstraint(new[] { teacherIdColumn, subjectIdColumn });

我知道,PK注重独特性。但我已经在其他专栏中使用了这种PK机制。现在,我将构造另一个示例来更好地解释场景。考虑表,家庭成员,其中我的PK是(家庭ID +成员)两个整数。还有另一列MemberName(string)。现在,我希望列(FamilyID+MemberName)具有唯一性。现在请告诉我怎么做?谢谢。我知道,PK注重独特性。但我已经在其他专栏中使用了这种PK机制。现在,我将构造另一个示例来更好地解释场景。考虑表,家庭成员,其中我的PK是(家庭ID +成员)两个整数。还有另一列MemberName(string)。现在,我希望列(FamilyID+MemberName)具有唯一性。现在请告诉我,怎么做?