Aggiunta di una DataTable a un DataSet (ADO.NET)
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 utilizzando 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.
Dim customerOrders As DataSet = 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}
DataSet customerOrders = new DataSet("CustomerOrders");
DataTable ordersTable = customerOrders.Tables.Add("Orders");
DataColumn pkOrderID =
ordersTable.Columns.Add("OrderID", typeof(Int32));
ordersTable.Columns.Add("OrderQuantity", typeof(Int32));
ordersTable.Columns.Add("CompanyName", typeof(string));
ordersTable.PrimaryKey = new DataColumn[] { pkOrderID };
Distinzione fra maiuscole e 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 un tipo DataSet dataSet 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 utilizzando 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.