Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Una DataTable contiene una raccolta di oggetti DataColumn a cui fa riferimento la proprietà Columns della tabella. Questa raccolta di colonne, insieme a qualsiasi vincolo, definisce lo schema o la struttura della tabella.
È possibile creare DataColumn oggetti all'interno di una tabella usando il DataColumn costruttore o chiamando il Add metodo della Columns proprietà della tabella, ovvero un oggetto DataColumnCollection. Il Add metodo accetta argomenti ColumnName, DataType e Expression facoltativi e crea un nuovo DataColumn oggetto come membro della raccolta. Accetta inoltre un oggetto esistente DataColumn e lo aggiunge alla raccolta e restituisce un riferimento all'oggetto aggiunto DataColumn , se richiesto. Poiché DataTable gli oggetti non sono specifici di alcuna origine dati, i tipi .NET Framework vengono usati quando si specifica il tipo di dati di un oggetto DataColumn.
Nell'esempio seguente vengono aggiunte quattro colonne a un oggetto DataTable.
Dim workTable As DataTable = New DataTable("Customers")
Dim workCol As DataColumn = workTable.Columns.Add( _
"CustID", Type.GetType("System.Int32"))
workCol.AllowDBNull = false
workCol.Unique = true
workTable.Columns.Add("CustLName", Type.GetType("System.String"))
workTable.Columns.Add("CustFName", Type.GetType("System.String"))
workTable.Columns.Add("Purchases", Type.GetType("System.Double"))
DataTable workTable = new DataTable("Customers");
DataColumn workCol = workTable.Columns.Add("CustID", typeof(Int32));
workCol.AllowDBNull = false;
workCol.Unique = true;
workTable.Columns.Add("CustLName", typeof(String));
workTable.Columns.Add("CustFName", typeof(String));
workTable.Columns.Add("Purchases", typeof(Double));
Nell'esempio si noti che le proprietà per la CustID colonna sono impostate su non consentire DBNull valori e vincolare i valori per essere univoci. Tuttavia, se si definisce la CustID colonna come colonna chiave primaria della tabella, la AllowDBNull proprietà verrà impostata automaticamente su false e la Unique proprietà verrà impostata automaticamente su true. Per altre informazioni, vedere Definizione delle chiavi primarie.
Attenzione
Se non viene specificato un nome di colonna per una colonna, alla colonna viene assegnato un nome predefinito incrementale di ColumnN, a partire da "Column1", quando viene aggiunto a DataColumnCollection. È consigliabile evitare la convenzione di denominazione "ColumnN" quando si specifica un nome di colonna, perché il nome specificato potrebbe essere in conflitto con un nome di colonna predefinito esistente in DataColumnCollection. Se il nome specificato esiste già, viene generata un'eccezione.
Se si utilizza XElement come DataType di un DataColumn nel DataTable, la serializzazione XML non funzionerà quando si leggono i dati. Ad esempio, se si scrive un XmlDocument usando il DataTable.WriteXml metodo, alla serializzazione in XML è presente un nodo padre aggiuntivo in XElement. Per risolvere questo problema, usare il SqlXml tipo anziché XElement.
ReadXml e WriteXml funzionano correttamente con SqlXml.