Definizione dello schema di una DataTable

Lo schema, o struttura, di una tabella viene rappresentato da colonne e vincoli. Per definire lo schema di una DataTable, è possibile utilizzare gli oggetti DataColumn o gli oggetti ForeignKeyConstraint e UniqueConstraint. Le colonne di una tabella possono essere associate a colonne di un'origine dati o possono contenere valori calcolati da espressioni, incrementare automaticamente i propri valori o contenere valori di chiavi primarie.

Distinzione tra maiuscole e minuscole

I riferimenti basati sui nomi a colonne, relazioni e vincoli di una tabella prevedono la distinzione tra maiuscole e minuscole. In una tabella sono consentiti due o più colonne, relazioni o vincoli con lo stesso nome ma con diversa combinazione di maiuscole e minuscole. È ad esempio possibile che siano presenti sia Col1 che col1. È quindi necessario che in un riferimento basato sul nome a una delle colonne venga utilizzato il nome con la stessa combinazione di maiuscole e minuscole adottata nella colonna. Se il nome non corrisponde, verrà generata un'eccezione. Se ad esempio nella tabella myTable sono contenute le colonne Col1 e col1, il riferimento basato sul nome a Col1 sarà myTable.Columns["Col1"] e il riferimento a col1 sarà myTable.Columns["col1"]. Se si tenta di fare riferimento a una delle due colonne come myTable.Columns["COL1"], verrà generata un'eccezione.

La distinzione tra maiuscole e minuscole non risulta rilevante se nella tabella è presente solo una colonna, una relazione o un vincolo con un determinato nome. Se nella tabella non sono presenti tabelle, relazioni o oggetti Constraint il cui nome corrisponda al nome della particolare colonna o relazione o del particolare oggetto Constraint, anche solo per una differenza tra maiuscole e minuscole, sarà possibile fare riferimento all'oggetto per nome utilizzando qualunque combinazione di maiuscole e minuscole, senza che venga generata alcuna eccezione. Se ad esempio nella tabella è presente solo Col1, è possibile fare riferimento a tale colonna utilizzando my.Columns["COL1"].

La proprietà CaseSensitive di DataTable non influisce su tale comportamento. Tale proprietà viene infatti applicata ai dati della tabella e influisce sull'ordinamento, la ricerca, l'applicazione di filtri, di vincoli e così via. I riferimenti a colonne, relazioni e vincoli presenti in una tabella non vengono influenzati dalla proprietà CaseSensitive.

In questa sezione