Aggiunta di un oggetto DataTable a un dataset
ADO.NET consente di creare oggetti DataTable e di aggiungerli a un tipo DataSet esistente. È possibile impostare le informazioni relative ai vincoli per un tipo DataTable usando le proprietà PrimaryKey e Unique.
Esempio
L'esempio seguente consente di creare un tipo 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.
DataSet customerOrders = new("CustomerOrders");
DataTable ordersTable = customerOrders.Tables.Add("Orders");
DataColumn pkOrderID =
ordersTable.Columns.Add("OrderID", typeof(int));
ordersTable.Columns.Add("OrderQuantity", typeof(int));
ordersTable.Columns.Add("CompanyName", typeof(string));
ordersTable.PrimaryKey = new DataColumn[] { pkOrderID };
Dim customerOrders As New DataSet("CustomerOrders")
Dim ordersTable As DataTable = customerOrders.Tables.Add("Orders")
Dim pkOrderID 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() {pkOrderID}
Maiuscole/minuscole
In un tipo DataSet sono consentite due o più tabelle o relazioni con lo stesso nome ma con diversa combinazione di maiuscole e minuscole. In questi casi, i riferimenti basati sui nomi a tabelle e relazioni prevedono la distinzione tra maiuscole e minuscole. Se ad esempio in DataSetdataSet sono contenute le tabelle Table1 e table1, il riferimento basato sul nome a Table1 sarà dataSet.Tables["Table1"] e il riferimento a table1 sarà dataSet.Tables["table1"]. Se si tenta di fare riferimento a una delle due tabelle come dataSet.Tables["TABLE1"], verrà generata un'eccezione.
La distinzione tra maiuscole e minuscole non è rilevante se è presente solo una tabella o relazione con un determinato nome. Se ad esempio nel tipo DataSet è presente solo Table1, è possibile fare riferimento a questa tabella usando dataSet.Tables["TABLE1"].
Nota
La proprietà CaseSensitive del tipo DataSet non influisce su tale comportamento. La proprietà CaseSensitive viene infatti applicata ai dati del tipo DataSet e influisce sull'ordinamento, la ricerca, l'applicazione di filtri, di vincoli e così via.
Supporto dello spazio dei nomi
Nelle versioni ADO.NET precedenti alla 2.0 due tabelle non potevano avere lo stesso nome, anche se si trovavano in spazi dei nomi diversi. In ADO.NET 2.0 questa limitazione è stata eliminata. Un tipo DataSet può contenere due tabelle con lo stesso valore per la proprietà TableName ma con valori diversi per la proprietà Namespace.