2016-06-30 7 views
0

Ich habe eine DataTable, die mit einer SQL-Anweisung unter Verwendung von JOINs gefüllt wurde. Innerhalb der DataTable, ID und Category sind ein einzigartiges Paar, ID selbst ist nicht einzigartig.So legen Sie eine Spalte fest, die NULL-Werte als sekundären Primärschlüssel einer DataTable enthält

Category darf NULL-Werte enthalten. Ich möchte sie als PrimaryKey der DataTable setzen, um Zeilen mit der Find(...) Methode zu finden.

aber wenn ich versuche, ID und Category als PrimaryKey Eigenschaft des DataTable einzustellen, erhalte ich eine System.Data.DataException.

Code:

dt.PrimaryKey = New DataColumn() {dt.Columns.Item("ID"), dt.Columns.Item("Category")} 

Exception (übersetzt):

Spalte 'Kategorie' hat es in null-Werte

Wie kann ich noch ID und Category als PrimaryKey?

Antwort

2

Bis Sie Werte für Null-Spalten füllen, können Sie den Primärschlüssel nicht festlegen. Primärschlüsselkonzept selbst ist "NOT NULL" Spalten.

Von documentation:

Wenn Sie ein einzelnes Datacolumn als PrimaryKey für eine Datatable zu identifizieren, setzt die Tabelle automatisch die AllowDBNull Eigenschaft der Spalte auf false und die einzigartige Eigenschaft auf true. Bei mehrspaltigen Primärschlüsseln wird nur die AllowDBNull-Eigenschaft automatisch auf false gesetzt.

+1

https://msdn.microsoft.com/en-us/library/z24kefs8(v=vs.110).aspx – andy

Verwandte Themen