2016-06-30 4 views
0

J'ai un DataTable qui a été rempli avec une instruction SQL à l'aide de JOINs. À l'intérieur du DataTable, ID et Category sont une paire unique, ID lui-même n'est pas unique.Comment définir une colonne contenant des valeurs NULL en tant que clé primaire secondaire d'un DataTable

Category est autorisé à contenir des valeurs NULL. Je veux les définir comme PrimaryKey du DataTable pour pouvoir trouver des lignes en utilisant la méthode Find(...).

Cependant, lorsque je tente de mettre ID et Category comme la propriété PrimaryKey du DataTable, je reçois un System.Data.DataException.

code:

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

Exception (traduit):

Colonne 'Catégorie' a des valeurs nulles dans ce

Comment puis-je encore mis ID et Category comme PrimaryKey?

Répondre

2

Jusqu'à ce que vous remplissiez des valeurs pour les colonnes Null, il ne permettra pas de définir la clé primaire. Le concept de clé primaire lui-même est des colonnes "NOT NULL".

De documentation:

Lorsque vous identifiez un DataColumn comme PrimaryKey pour un DataTable, la table définit automatiquement la propriété AllowDBNull de la colonne false et la propriété unique true. Pour les clés primaires à plusieurs colonnes, seule la propriété AllowDBNull est automatiquement définie sur false.

+1

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