2011-01-02 5 views
0

Ich arbeite in VB.NET. Ich habe eine DataTable, sagen dt = New DataTable() Ich habe drei Spalten, sagen TeacherID, SubjectID und TeachingGrade Nun möchte ich [TeacherID - SubjectID] Paar, nicht zu wiederholen. Beide sind Ganzzahlen. Eindeutige Einstellung für Spalten, gewährleistet die Eindeutigkeit individuell, Problem ya .. Dann werden auch rechtliche Daten abgelehnt. WIE ZU?Wie kann die Eindeutigkeit von mehr als einer Spalte der Datentabelle in vb.net sichergestellt werden?

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 }; 

EDIT:

+0

Ich weiß, PK sorgt für Einzigartigkeit. Aber ich habe diesen PK-Mechanismus bereits für andere Spalten verwendet. Nun werde ich ein weiteres Beispiel konstruieren, um das Szenario besser zu erklären. Betrachte Tabelle, FamilyMembers, wo meine PK (FamilyID + MemberID) beide Ganzzahlen sind. Es gibt eine weitere Spalte, MemberName (Zeichenfolge). Nun möchte ich die Eindeutigkeit für Spalten haben (FamilyID + MemberName). Sag mir bitte, jetzt, wie? –

Antwort

0

diese Spalten als Primärschlüssel für die Tabelle Set

Sie auch eine Einschränkung für die Tabelle erstellen:

dt.Constraints.Add(new UniqueConstraint(new[] { teacherIdColumn, subjectIdColumn }); 
+0

Danke. Ich weiß, PK kümmert sich um Einzigartigkeit. Aber ich habe diesen PK-Mechanismus bereits für andere Spalten verwendet. Nun werde ich ein weiteres Beispiel konstruieren, um das Szenario besser zu erklären. Betrachte Tabelle, FamilyMembers, wo meine PK (FamilyID + MemberID) beide Ganzzahlen sind. Es gibt eine weitere Spalte, MemberName (Zeichenfolge). Nun möchte ich die Eindeutigkeit für Spalten haben (FamilyID + MemberName). Sag mir bitte, jetzt, wie? –

+0

@Satbhai M D, siehe meine aktualisierte Antwort –

+0

DANKE VIEL. GREAT ... –

Verwandte Themen