Aggiunta di una DataTable a un DataSet
ADO.NET consente di creare oggetti DataTable e di aggiungerli a un DataSet esistente. È possibile impostare le informazioni relative ai vincoli per una DataTable utilizzando le proprietà PrimaryKey e Unique degli oggetti DataColumn, che vengono aggiunti all'insieme Columns della DataTable.
L'esempio seguente consente di creare un DataSet, aggiungere un nuovo oggetto DataTable al DataSet e aggiungere tre oggetti DataColumn alla tabella. Il codice consente infine di impostare una colonna come colonna di chiave primaria.
Dim custDS As DataSet = New DataSet("CustomerOrders")
Dim ordersTable As DataTable = custDS.Tables.Add("Orders")
Dim pkCol As DataColumn = ordersTable.Columns.Add("OrderID", Type.GetType("System.Int32"))
ordersTable.Columns.Add("OrderQuantity", Type.GetType("System.Int32"))
ordersTable.Columns.Add("CompanyName", Type.GetType("System.String"))
ordersTable.PrimaryKey = New DataColumn() {pkCol}
[C#]
DataSet custDS = new DataSet("CustomerOrders");
DataTable ordersTable = custDS.Tables.Add("Orders");
DataColumn pkCol = ordersTable.Columns.Add("OrderID", typeof(Int32));
ordersTable.Columns.Add("OrderQuantity", typeof(Int32));
ordersTable.Columns.Add("CompanyName", typeof(string));
ordersTable.PrimaryKey = new DataColumn[] {pkCol};
Distinzione tra maiuscole e minuscole
I riferimenti basati sui nomi a tabelle e relazioni in un DataSet prevedono la distinzione tra maiuscole e minuscole. In un DataSet sono consentite due o più tabelle o relazioni con lo stesso nome ma con diversa combinazione di maiuscole e minuscole. È ad esempio possibile che siano presenti sia Table1 che table1. È quindi necessario che in un riferimento basato sul nome a una delle tabelle venga utilizzato il nome con la stessa combinazione di maiuscole e minuscole adottata nella tabella. Se il nome non corrisponde, verrà generata un'eccezione. Se ad esempio in DataSet myDS sono contenute le tabelle Table1 e table1, il riferimento basato sul nome a Table1 sarà myDS.Tables["Table1"] e il riferimento a table1 sarà myDS.Tables ["table1"]. Se si tenta di fare riferimento a una delle due tabelle come myDS.Tables ["TABLE1"], verrà generata un'eccezione.
La distinzione tra maiuscole e minuscole non risulta rilevante se è presente solo una tabella o relazione con un determinato nome. Se nel DataSet non sono presenti oggetti di tabella o relazione il cui nome corrisponda al nome del particolare oggetto di tabella o relazione, 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 nel DataSet è presente solo Table1, è possibile fare riferimento a tale tabella utilizzando myDS.Tables["TABLE1"].
La proprietà CaseSensitive di DataSet non influisce su tale comportamento. Tale proprietà viene infatti applicata ai dati del DataSet e influisce sull'ordinamento, la ricerca, l'applicazione di filtri, di vincoli e così via. I riferimenti a tabelle o relazioni presenti in un DataSet non vengono influenzati dalla proprietà CaseSensitive.
Vedere anche
Creazione e utilizzo di DataSet | Classe DataSet | Classe DataTable