Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe DataTable

 

Rappresenta una tabella di dati in memoria.

Spazio dei nomi:   System.Data
Assembly:  System.Data (in System.Data.dll)


[SerializableAttribute]
public class DataTable : MarshalByValueComponent, IListSource, 
	ISupportInitializeNotification, ISupportInitialize, ISerializable, 
	IXmlSerializable

NomeDescrizione
System_CAPS_pubmethodDataTable()

Inizializza una nuova istanza di DataTable classe senza argomenti.

System_CAPS_protmethodDataTable(SerializationInfo, StreamingContext)

Inizializza una nuova istanza della DataTable classe con il SerializationInfo e StreamingContext.

System_CAPS_pubmethodDataTable(String)

Inizializza una nuova istanza di DataTable classe con il nome della tabella specificata.

System_CAPS_pubmethodDataTable(String, String)

Inizializza una nuova istanza di DataTable classe utilizzando il nome di tabella specificata e lo spazio dei nomi.

NomeDescrizione
System_CAPS_pubpropertyCaseSensitive

Indica se i confronti di stringhe all'interno della tabella maiuscole e minuscole.

System_CAPS_pubpropertyChildRelations

Ottiene la raccolta di relazioni figlio per l'oggetto DataTable.

System_CAPS_pubpropertyColumns

Ottiene la raccolta di colonne che appartengono a questa tabella.

System_CAPS_pubpropertyConstraints

Ottiene la raccolta di vincoli mantenuti da questa tabella.

System_CAPS_pubpropertyContainer

Ottiene il contenitore per il componente.(Ereditato da MarshalByValueComponent.)

System_CAPS_pubpropertyDataSet

Ottiene il DataSet a cui appartiene questa tabella.

System_CAPS_pubpropertyDefaultView

Ottiene una visualizzazione personalizzata della tabella che può includere una visualizzazione filtrata o la posizione del cursore.

System_CAPS_pubpropertyDesignMode

Ottiene un valore che indica se il componente è attualmente in modalità progettazione.(Ereditato da MarshalByValueComponent.)

System_CAPS_pubpropertyDisplayExpression

Ottiene o imposta l'espressione che restituisce un valore utilizzato per rappresentare questa tabella nell'interfaccia utente. Il DisplayExpression proprietà consente di visualizzare il nome della tabella in un'interfaccia utente.

System_CAPS_protpropertyEvents

Ottiene l'elenco di gestori eventi associati a questo componente.(Ereditato da MarshalByValueComponent.)

System_CAPS_pubpropertyExtendedProperties

Ottiene la raccolta di informazioni utente personalizzate.

System_CAPS_pubpropertyHasErrors

Ottiene un valore che indica se sono presenti errori in tutte le righe delle tabelle del DataSet a cui appartiene la tabella.

System_CAPS_pubpropertyIsInitialized

Ottiene un valore che indica se il DataTable viene inizializzato.

System_CAPS_pubpropertyLocale

Ottiene o imposta le informazioni delle impostazioni locali utilizzate per confrontare le stringhe all'interno della tabella.

System_CAPS_pubpropertyMinimumCapacity

Ottiene o imposta la dimensione iniziale per questa tabella.

System_CAPS_pubpropertyNamespace

Ottiene o imposta lo spazio dei nomi per la rappresentazione XML dei dati archiviati nel DataTable.

System_CAPS_pubpropertyParentRelations

Ottiene la raccolta di relazioni padre dell'oggetto DataTable.

System_CAPS_pubpropertyPrefix

Ottiene o imposta lo spazio dei nomi per la rappresentazione XML dei dati archiviati nel DataTable.

System_CAPS_pubpropertyPrimaryKey

Ottiene o imposta una matrice di colonne di tale funzione come chiavi primarie per la tabella dati.

System_CAPS_pubpropertyRemotingFormat

Ottiene o imposta il formato di serializzazione.

System_CAPS_pubpropertyRows

Ottiene la raccolta di righe che appartengono a questa tabella.

System_CAPS_pubpropertySite

Ottiene o imposta un oggetto System.ComponentModel.ISite per l'oggetto DataTable.(Esegue l'override di MarshalByValueComponent.Site.)

System_CAPS_pubpropertyTableName

Ottiene o imposta il nome di DataTable.

NomeDescrizione
System_CAPS_pubmethodAcceptChanges()

Esegue il commit di tutte le modifiche apportate a questa tabella dopo l'ultimo AcceptChanges è stato chiamato.

System_CAPS_pubmethodBeginInit()

Avvia l'inizializzazione di una DataTable usata su un form o da un altro componente. L'inizializzazione avviene in fase di esecuzione.

System_CAPS_pubmethodBeginLoadData()

Consente di disattivare le notifiche, la manutenzione degli indici e vincoli durante il caricamento dei dati.

System_CAPS_pubmethodClear()

Cancella il DataTable di tutti i dati.

System_CAPS_pubmethodClone()

Duplica la struttura del DataTable, inclusi tutti DataTable schemi e i vincoli.

System_CAPS_pubmethodCompute(String, String)

Calcola l'espressione specificata sulle righe che soddisfano i criteri di filtro corrente.

System_CAPS_pubmethodCopy()

Copia la struttura e i dati per questa DataTable.

System_CAPS_pubmethodCreateDataReader()

Restituisce un DataTableReader corrispondente ai dati all'interno di questo DataTable.

System_CAPS_protmethodCreateInstance()

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Crea una nuova istanza di DataTable.

System_CAPS_pubmethodDispose()

Rilascia tutte le risorse usate da MarshalByValueComponent.(Ereditato da MarshalByValueComponent.)

System_CAPS_protmethodDispose(Boolean)

Rilascia le risorse non gestite usate da MarshalByValueComponent e, facoltativamente, le risorse gestite.(Ereditato da MarshalByValueComponent.)

System_CAPS_pubmethodEndInit()

Termina l'inizializzazione di una classe DataTable usata su un form o da un altro componente. L'inizializzazione avviene in fase di esecuzione.

System_CAPS_pubmethodEndLoadData()

Consente di attivare le notifiche, la manutenzione degli indici e vincoli dopo il caricamento dei dati.

System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da MarshalByValueComponent.)

System_CAPS_pubmethodGetChanges()

Ottiene una copia di DataTable che contiene tutte le modifiche apportate dopo il caricamento o AcceptChanges dall'ultima chiamata.

System_CAPS_pubmethodGetChanges(DataRowState)

Ottiene una copia di DataTable contenente tutte le modifiche apportate dall'ultimo caricamento o dal AcceptChanges è stato chiamato, filtrati in base a DataRowState.

System_CAPS_pubmethodSystem_CAPS_staticGetDataTableSchema(XmlSchemaSet)

Questo metodo restituisce un XmlSchemaSet istanza contenente i servizi descrizione linguaggio WSDL (Web) che descrive il DataTable per i servizi Web.

System_CAPS_pubmethodGetErrors()

Ottiene una matrice di DataRow gli oggetti che contengono errori.

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash predefinita.(Ereditato da Object.)

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

Popola un oggetto di informazioni di serializzazione con i dati necessari per serializzare il DataTable.

System_CAPS_protmethodGetRowType()

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Ottiene il tipo di riga.

System_CAPS_protmethodGetSchema()

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Per una descrizione di questo membro, vedere IXmlSerializable.GetSchema.

System_CAPS_pubmethodGetService(Type)

Ottiene l'implementatore di IServiceProvider.(Ereditato da MarshalByValueComponent.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_pubmethodImportRow(DataRow)

Copia un DataRow in un DataTable, mantenendo le impostazioni delle proprietà, nonché i valori originali e correnti.

System_CAPS_pubmethodLoad(IDataReader)

Riempie una DataTable con i valori da un'origine dati utilizzando la classe fornita IDataReader. Se il DataTable contiene già righe, i dati in arrivo dall'origine dati viene uniti con le righe esistenti.

System_CAPS_pubmethodLoad(IDataReader, LoadOption)

Riempie una DataTable con i valori da un'origine dati utilizzando la classe fornita IDataReader. Se il DataTable contiene già righe, i dati in arrivo dall'origine dati viene uniti con le righe esistenti in base al valore di loadOption parametro.

System_CAPS_pubmethodLoad(IDataReader, LoadOption, FillErrorEventHandler)

Riempie una DataTable con i valori da un'origine dati utilizzando la classe fornita IDataReader tramite un delegato di gestione degli errori.

System_CAPS_pubmethodLoadDataRow(Object[], Boolean)

Rileva e aggiorna una riga specifica. Se viene trovata alcuna riga corrispondente, viene creata una nuova riga utilizzando i valori specificati.

System_CAPS_pubmethodLoadDataRow(Object[], LoadOption)

Rileva e aggiorna una riga specifica. Se viene trovata alcuna riga corrispondente, viene creata una nuova riga utilizzando i valori specificati.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_pubmethodMerge(DataTable)

Unire la classe specificata DataTable con corrente DataTable.

System_CAPS_pubmethodMerge(DataTable, Boolean)

Unire la classe specificata DataTable con corrente DataTable, che indica se mantenere le modifiche nell'oggetto DataTable.

System_CAPS_pubmethodMerge(DataTable, Boolean, MissingSchemaAction)

Unire la classe specificata DataTable con corrente DataTable, che indica se mantenere le modifiche e come gestire lo schema mancante nell'attuale DataTable.

System_CAPS_pubmethodNewRow()

Crea un nuovo DataRow con lo stesso schema della tabella.

System_CAPS_protmethodNewRowArray(Int32)

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Restituisce una matrice di DataRow.

System_CAPS_protmethodNewRowFromBuilder(DataRowBuilder)

Crea una nuova riga da una riga esistente.

System_CAPS_protmethodOnColumnChanged(DataColumnChangeEventArgs)

Genera l'evento ColumnChanged.

System_CAPS_protmethodOnColumnChanging(DataColumnChangeEventArgs)

Genera l'evento ColumnChanging.

System_CAPS_protmethodOnPropertyChanging(PropertyChangedEventArgs)

Genera l'evento PropertyChanged.

System_CAPS_protmethodOnRemoveColumn(DataColumn)

Notifica il DataTable che un DataColumn viene rimosso.

System_CAPS_protmethodOnRowChanged(DataRowChangeEventArgs)

Genera l'evento RowChanged.

System_CAPS_protmethodOnRowChanging(DataRowChangeEventArgs)

Genera l'evento RowChanging.

System_CAPS_protmethodOnRowDeleted(DataRowChangeEventArgs)

Genera l'evento RowDeleted.

System_CAPS_protmethodOnRowDeleting(DataRowChangeEventArgs)

Genera l'evento RowDeleting.

System_CAPS_protmethodOnTableCleared(DataTableClearEventArgs)

Genera l'evento TableCleared.

System_CAPS_protmethodOnTableClearing(DataTableClearEventArgs)

Genera l'evento TableClearing.

System_CAPS_protmethodOnTableNewRow(DataTableNewRowEventArgs)

Genera l'evento TableNewRow.

System_CAPS_pubmethodReadXml(Stream)

Legge i dati in XML schema e il DataTable utilizzando l'oggetto specificato Stream.

System_CAPS_pubmethodReadXml(String)

Legge i dati in XML schema e il DataTable dal file specificato.

System_CAPS_pubmethodReadXml(TextReader)

Legge i dati in XML schema e il DataTable utilizzando l'oggetto specificato TextReader.

System_CAPS_pubmethodReadXml(XmlReader)

Legge i dati in XML Schema e il DataTable utilizzando l'oggetto specificato XmlReader.

System_CAPS_pubmethodReadXmlSchema(Stream)

Legge un XML schema nel DataTable utilizzando il flusso specificato.

System_CAPS_pubmethodReadXmlSchema(String)

Legge un XML schema nel DataTable dal file specificato.

System_CAPS_pubmethodReadXmlSchema(TextReader)

Legge un XML schema nel DataTable utilizzando l'oggetto specificato TextReader.

System_CAPS_pubmethodReadXmlSchema(XmlReader)

Legge un XML schema nel DataTable utilizzando l'oggetto specificato XmlReader.

System_CAPS_protmethodReadXmlSerializable(XmlReader)

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Legge da un flusso XML.

System_CAPS_pubmethodRejectChanges()

Il rollback di tutte le modifiche apportate alla tabella dopo il caricamento o l'ora dell'ultimo AcceptChanges è stato chiamato.

System_CAPS_pubmethodReset()

Reimposta il DataTable allo stato originale. Reimpostazione rimuove tutti dati, indici, relazioni e le colonne della tabella. Se un set di dati include un oggetto DataTable, la tabella sarà ancora parte del set di dati dopo la reimpostazione della tabella.

System_CAPS_pubmethodSelect()

Ottiene una matrice di tutti DataRow oggetti.

System_CAPS_pubmethodSelect(String)

Ottiene una matrice di tutti DataRow gli oggetti che soddisfano i criteri di filtro.

System_CAPS_pubmethodSelect(String, String)

Ottiene una matrice di tutti DataRow gli oggetti che soddisfano i criteri di filtro, nella sequenza di ordinamento specificato.

System_CAPS_pubmethodSelect(String, String, DataViewRowState)

Ottiene una matrice di tutti DataRow gli oggetti che corrispondono al filtro sequenza di ordinamento che corrispondono allo stato specificato.

System_CAPS_pubmethodToString()

Ottiene il TableName e DisplayExpression, se è presente come una stringa concatenata.(Esegue l'override di MarshalByValueComponent.ToString().)

System_CAPS_pubmethodWriteXml(Stream)

Scrive il contenuto corrente del DataTable come XML utilizzando l'oggetto specificato Stream.

System_CAPS_pubmethodWriteXml(Stream, Boolean)

Scrive il contenuto corrente del DataTable come XML utilizzando l'oggetto specificato Stream. Per salvare i dati per la tabella e tutti i relativi discendenti, impostare il writeHierarchy parametro true.

System_CAPS_pubmethodWriteXml(Stream, XmlWriteMode)

Scrive i dati correnti e, facoltativamente, lo schema per il DataTable nel file specificato utilizzando l'oggetto specificato XmlWriteMode. Per scrivere lo schema, impostare il valore per il mode parametro WriteSchema.

System_CAPS_pubmethodWriteXml(Stream, XmlWriteMode, Boolean)

Scrive i dati correnti e, facoltativamente, lo schema per il DataTable nel file specificato utilizzando l'oggetto specificato XmlWriteMode. Per scrivere lo schema, impostare il valore per il mode parametro WriteSchema. Per salvare i dati per la tabella e tutti i relativi discendenti, impostare il writeHierarchy parametro true.

System_CAPS_pubmethodWriteXml(String)

Scrive il contenuto corrente del DataTable come XML utilizzando il file specificato.

System_CAPS_pubmethodWriteXml(String, Boolean)

Scrive il contenuto corrente del DataTable come XML utilizzando il file specificato. Per salvare i dati per la tabella e tutti i relativi discendenti, impostare il writeHierarchy parametro true.

System_CAPS_pubmethodWriteXml(String, XmlWriteMode)

Scrive i dati correnti e, facoltativamente, lo schema per il DataTable usando il file specificato e XmlWriteMode. Per scrivere lo schema, impostare il valore per il mode parametro WriteSchema.

System_CAPS_pubmethodWriteXml(String, XmlWriteMode, Boolean)

Scrive i dati correnti e, facoltativamente, lo schema per il DataTable usando il file specificato e XmlWriteMode. Per scrivere lo schema, impostare il valore per il mode parametro WriteSchema. Per salvare i dati per la tabella e tutti i relativi discendenti, impostare il writeHierarchy parametro true.

System_CAPS_pubmethodWriteXml(TextWriter)

Scrive il contenuto corrente dell'oggetto DataTable come XML usando l'oggetto TextWriter specificato.

System_CAPS_pubmethodWriteXml(TextWriter, Boolean)

Scrive il contenuto corrente dell'oggetto DataTable come XML usando l'oggetto TextWriter specificato. Per salvare i dati per la tabella e tutti i relativi discendenti, impostare il writeHierarchy parametro true.

System_CAPS_pubmethodWriteXml(TextWriter, XmlWriteMode)

Scrive i dati correnti e, facoltativamente, lo schema per il DataTable utilizzando l'oggetto specificato TextWriter e XmlWriteMode. Per scrivere lo schema, impostare il valore per il mode parametro WriteSchema.

System_CAPS_pubmethodWriteXml(TextWriter, XmlWriteMode, Boolean)

Scrive i dati correnti e, facoltativamente, lo schema per il DataTable utilizzando l'oggetto specificato TextWriter e XmlWriteMode. Per scrivere lo schema, impostare il valore per il mode parametro WriteSchema. Per salvare i dati per la tabella e tutti i relativi discendenti, impostare il writeHierarchy parametro true.

System_CAPS_pubmethodWriteXml(XmlWriter)

Scrive il contenuto corrente del DataTable come XML utilizzando l'oggetto specificato XmlWriter.

System_CAPS_pubmethodWriteXml(XmlWriter, Boolean)

Scrive il contenuto corrente del DataTable come XML utilizzando l'oggetto specificato XmlWriter.

System_CAPS_pubmethodWriteXml(XmlWriter, XmlWriteMode)

Scrive i dati correnti e, facoltativamente, lo schema per il DataTable utilizzando l'oggetto specificato XmlWriter e XmlWriteMode. Per scrivere lo schema, impostare il valore per il mode parametro WriteSchema.

System_CAPS_pubmethodWriteXml(XmlWriter, XmlWriteMode, Boolean)

Scrive i dati correnti e, facoltativamente, lo schema per il DataTable utilizzando l'oggetto specificato XmlWriter e XmlWriteMode. Per scrivere lo schema, impostare il valore per il mode parametro WriteSchema. Per salvare i dati per la tabella e tutti i relativi discendenti, impostare il writeHierarchy parametro true.

System_CAPS_pubmethodWriteXmlSchema(Stream)

Scrive la struttura di dati corrente del DataTable come schema XML per il flusso specificato.

System_CAPS_pubmethodWriteXmlSchema(Stream, Boolean)

Scrive la struttura di dati corrente del DataTable come schema XML per il flusso specificato. Per salvare lo schema per la tabella e i relativi discendenti, impostare il writeHierarchy parametro true.

System_CAPS_pubmethodWriteXmlSchema(String)

Scrive la struttura di dati corrente del DataTable come schema XML al file specificato.

System_CAPS_pubmethodWriteXmlSchema(String, Boolean)

Scrive la struttura di dati corrente del DataTable come schema XML al file specificato. Per salvare lo schema per la tabella e i relativi discendenti, impostare il writeHierarchy parametro true.

System_CAPS_pubmethodWriteXmlSchema(TextWriter)

Scrive la struttura di dati corrente del DataTable come schema XML utilizzando l'oggetto specificato TextWriter.

System_CAPS_pubmethodWriteXmlSchema(TextWriter, Boolean)

Scrive la struttura di dati corrente del DataTable come schema XML utilizzando l'oggetto specificato TextWriter. Per salvare lo schema per la tabella e i relativi discendenti, impostare il writeHierarchy parametro true.

System_CAPS_pubmethodWriteXmlSchema(XmlWriter)

Scrive la struttura di dati corrente del DataTable come schema XML utilizzando l'oggetto specificato XmlWriter.

System_CAPS_pubmethodWriteXmlSchema(XmlWriter, Boolean)

Scrive la struttura di dati corrente del DataTable come schema XML utilizzando l'oggetto specificato XmlWriter. Per salvare lo schema per la tabella e i relativi discendenti, impostare il writeHierarchy parametro true.

NomeDescrizione
System_CAPS_protfieldfInitInProgress

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Controlla se è in corso l'inizializzazione. L'inizializzazione avviene in fase di esecuzione.

NomeDescrizione
System_CAPS_pubeventColumnChanged

Si verifica dopo aver modificato un valore per l'oggetto specificato DataColumn in un DataRow.

System_CAPS_pubeventColumnChanging

Si verifica quando viene modificato un valore per l'oggetto specificato DataColumn in un DataRow.

System_CAPS_pubeventDisposed

Aggiunge un gestore eventi per restare in attesa di Disposed eventi del componente.(Ereditato da MarshalByValueComponent.)

System_CAPS_pubeventInitialized

Si verifica dopo il DataTable viene inizializzato.

System_CAPS_pubeventRowChanged

Si verifica dopo la modifica di un oggetto DataRow.

System_CAPS_pubeventRowChanging

Si verifica quando un DataRow sta cambiando.

System_CAPS_pubeventRowDeleted

Si verifica dopo l'eliminazione di una riga nella tabella.

System_CAPS_pubeventRowDeleting

Si verifica prima che una riga nella tabella da eliminare.

System_CAPS_pubeventTableCleared

Si verifica dopo un DataTable è deselezionata.

System_CAPS_pubeventTableClearing

Si verifica quando un DataTable è deselezionata.

System_CAPS_pubeventTableNewRow

Si verifica quando un nuovo DataRow viene inserito.

NomeDescrizione
System_CAPS_pubinterfaceSystem_CAPS_privmethodIListSource.GetList()

Per una descrizione di questo membro, vedere IListSource.GetList.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIXmlSerializable.GetSchema()

Per una descrizione di questo membro, vedere IXmlSerializable.GetSchema.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIXmlSerializable.ReadXml(XmlReader)

Per una descrizione di questo membro, vedere IXmlSerializable.ReadXml.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIXmlSerializable.WriteXml(XmlWriter)

Per una descrizione di questo membro, vedere IXmlSerializable.WriteXml.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIListSource.ContainsListCollection

Per una descrizione di questo membro, vedere IListSource.ContainsListCollection.

NomeDescrizione
System_CAPS_pubmethodAsDataView()

Sottoposto a overload. Crea e restituisce un supporto LINQ DataView oggetto.(Definito da DataTableExtensions.)

System_CAPS_pubmethodAsEnumerable()

Restituisce un IEnumerable<T> oggetto, in cui il parametro generico T è DataRow. Questo oggetto può essere utilizzato un LINQ query di espressione o metodo.(Definito da DataTableExtensions.)

Il DataTable è un oggetto centrale nella libreria di ADO.NET. Altri oggetti che utilizzano il DataTable includono il DataSet e DataView.

Quando si accede a DataTable oggetti, si noti che sono prevedono la distinzione tra maiuscole e minuscole in modo condizionale. Ad esempio, se un DataTable viene denominato "mydatatable" e un altro denominato "Mydatatable", stringa utilizzata per cercare una delle tabelle verrà applicata la distinzione tra maiuscole e minuscole. Tuttavia, se presente "mydatatable" e non "Mydatatable", la stringa di ricerca viene considerata tra maiuscole e minuscole. Oggetto DataSet può contenere due DataTable gli oggetti che hanno lo stesso TableName valore della proprietà ma diversi Namespace i valori delle proprietà. Per ulteriori informazioni sull'utilizzo di DataTable degli oggetti, vedere Creazione di una DataTable.

Se si sta creando un DataTable a livello di codice, è necessario definire lo schema aggiungendo DataColumn oggetti per il DataColumnCollection (tramite la Columns proprietà). Per ulteriori informazioni sull'aggiunta di DataColumn degli oggetti, vedere Aggiunta di colonne a un DataTable.

Per aggiungere righe a un DataTable, è necessario utilizzare innanzitutto la NewRow per restituire un nuovo DataRow oggetto. Il NewRow il metodo restituisce una riga con lo schema del DataTable, come definito nella tabella DataColumnCollection. Il numero massimo di righe che un DataTable possibile archivio è 16.777.216. Per altre informazioni, vedere Aggiunta di dati a una DataTable.

Il DataTable contiene inoltre un insieme di Constraint gli oggetti che possono essere utilizzati per garantire l'integrità dei dati. Per altre informazioni, vedere Vincoli di DataTable.

Esistono molti DataTable gli eventi che possono essere usati per determinare quando vengono apportate modifiche a una tabella. Tali attributi includono RowChanged, RowChanging, RowDeleting e RowDeleted. Per ulteriori informazioni sugli eventi che può essere utilizzato con un DataTable, vedere Gestione degli eventi di DataTable.

Quando un'istanza di DataTable viene creato, alcuni della lettura/scrittura sono impostate sui valori iniziali. Per un elenco di questi valori, vedere il DataTable.DataTable argomento costruttore.

System_CAPS_noteNota

Il DataSet e DataTable oggetti ereditano MarshalByValueComponente supportano il ISerializable interfaccia per la comunicazione remota di .NET Framework. Si tratta degli unici oggetti ADO.NET che è possibile utilizzare per la comunicazione remota di .NET Framework.

L'esempio seguente crea due DataTable oggetti e una DataRelation e aggiunge i nuovi oggetti per un DataSet. Le tabelle vengono quindi visualizzate in un DataGridView controllo.

// Put the next line into the Declarations section.
private System.Data.DataSet dataSet;

private void MakeDataTables()
{
    // Run all of the functions. 
    MakeParentTable();
    MakeChildTable();
    MakeDataRelation();
    BindToDataGrid();
}

private void MakeParentTable()
{
    // Create a new DataTable.
    System.Data.DataTable table = new DataTable("ParentTable");
    // Declare variables for DataColumn and DataRow objects.
    DataColumn column;
    DataRow row;

    // Create new DataColumn, set DataType, 
    // ColumnName and add to DataTable.    
    column = new DataColumn();
    column.DataType = System.Type.GetType("System.Int32");
    column.ColumnName = "id";
    column.ReadOnly = true;
    column.Unique = true;
    // Add the Column to the DataColumnCollection.
    table.Columns.Add(column);

    // Create second column.
    column = new DataColumn();
    column.DataType = System.Type.GetType("System.String");
    column.ColumnName = "ParentItem";
    column.AutoIncrement = false;
    column.Caption = "ParentItem";
    column.ReadOnly = false;
    column.Unique = false;
    // Add the column to the table.
    table.Columns.Add(column);

    // Make the ID column the primary key column.
    DataColumn[] PrimaryKeyColumns = new DataColumn[1];
    PrimaryKeyColumns[0] = table.Columns["id"];
    table.PrimaryKey = PrimaryKeyColumns;

    // Instantiate the DataSet variable.
    dataSet = new DataSet();
    // Add the new DataTable to the DataSet.
    dataSet.Tables.Add(table);

    // Create three new DataRow objects and add 
    // them to the DataTable
    for (int i = 0; i<= 2; i++)
    {
        row = table.NewRow();
        row["id"] = i;
        row["ParentItem"] = "ParentItem " + i;
        table.Rows.Add(row);
    }
}

private void MakeChildTable()
{
    // Create a new DataTable.
    DataTable table = new DataTable("childTable");
    DataColumn column;
    DataRow row;

    // Create first column and add to the DataTable.
    column = new DataColumn();
    column.DataType= System.Type.GetType("System.Int32");
    column.ColumnName = "ChildID";
    column.AutoIncrement = true;
    column.Caption = "ID";
    column.ReadOnly = true;
    column.Unique = true;

    // Add the column to the DataColumnCollection.
    table.Columns.Add(column);

    // Create second column.
    column = new DataColumn();
    column.DataType= System.Type.GetType("System.String");
    column.ColumnName = "ChildItem";
    column.AutoIncrement = false;
    column.Caption = "ChildItem";
    column.ReadOnly = false;
    column.Unique = false;
    table.Columns.Add(column);

    // Create third column.
    column = new DataColumn();
    column.DataType= System.Type.GetType("System.Int32");
    column.ColumnName = "ParentID";
    column.AutoIncrement = false;
    column.Caption = "ParentID";
    column.ReadOnly = false;
    column.Unique = false;
    table.Columns.Add(column);

    dataSet.Tables.Add(table);

    // Create three sets of DataRow objects, 
    // five rows each, and add to DataTable.
    for(int i = 0; i <= 4; i ++)
    {
        row = table.NewRow();
        row["childID"] = i;
        row["ChildItem"] = "Item " + i;
        row["ParentID"] = 0 ;
        table.Rows.Add(row);
    }
    for(int i = 0; i <= 4; i ++)
    {
        row = table.NewRow();
        row["childID"] = i + 5;
        row["ChildItem"] = "Item " + i;
        row["ParentID"] = 1 ;
        table.Rows.Add(row);
    }
    for(int i = 0; i <= 4; i ++)
    {
        row = table.NewRow();
        row["childID"] = i + 10;
        row["ChildItem"] = "Item " + i;
        row["ParentID"] = 2 ;
        table.Rows.Add(row);
    }
}

private void MakeDataRelation()
{
    // DataRelation requires two DataColumn 
    // (parent and child) and a name.
    DataColumn parentColumn = 
        dataSet.Tables["ParentTable"].Columns["id"];
    DataColumn childColumn = 
        dataSet.Tables["ChildTable"].Columns["ParentID"];
    DataRelation relation = new 
        DataRelation("parent2Child", parentColumn, childColumn);
    dataSet.Tables["ChildTable"].ParentRelations.Add(relation);
}

private void BindToDataGrid()
{
    // Instruct the DataGrid to bind to the DataSet, with the 
    // ParentTable as the topmost DataTable.
    dataGrid1.SetDataBinding(dataSet,"ParentTable");
}

In questo esempio viene illustrato come creare manualmente un oggetto DataTable tramite definizioni di schema specifiche:

  • Creare più DataTable e definire le colonne iniziali.

  • Creare i vincoli della tabella.

  • Inserire i valori e visualizzare le tabelle.

  • Creare colonne di espressioni e visualizzare le tabelle.

Progetti c# e Visual Basic con questo esempio di codice sono reperibile in Developer Code Samples.

using System;
using System.Data;

class Program {
   static void Main(string[] args) {
      // Create two tables and add them into the DataSet
      DataTable orderTable = CreateOrderTable();
      DataTable orderDetailTable = CreateOrderDetailTable();
      DataSet salesSet = new DataSet();
      salesSet.Tables.Add(orderTable);
      salesSet.Tables.Add(orderDetailTable);

      // Set the relations between the tables and create the related constraint.
      salesSet.Relations.Add("OrderOrderDetail", orderTable.Columns["OrderId"], orderDetailTable.Columns["OrderId"], true);

      Console.WriteLine("After creating the foreign key constriant, you will see the following error if inserting order detail with the wrong OrderId: ");
      try {
         DataRow errorRow = orderDetailTable.NewRow();
         errorRow[0] = 1;
         errorRow[1] = "O0007";
         orderDetailTable.Rows.Add(errorRow);
      } catch (Exception e) {
         Console.WriteLine(e.Message);
      }
      Console.WriteLine();

      // Insert the rows into the table
      InsertOrders(orderTable);
      InsertOrderDetails(orderDetailTable);

      Console.WriteLine("The initial Order table.");
      ShowTable(orderTable);

      Console.WriteLine("The OrderDetail table.");
      ShowTable(orderDetailTable);

      // Use the Aggregate-Sum on the child table column to get the result.
      DataColumn colSub = new DataColumn("SubTotal", typeof(Decimal), "Sum(Child.LineTotal)");
      orderTable.Columns.Add(colSub);

      // Compute the tax by referencing the SubTotal expression column.
      DataColumn colTax = new DataColumn("Tax", typeof(Decimal), "SubTotal*0.1");
      orderTable.Columns.Add(colTax);

      // If the OrderId is 'Total', compute the due on all orders; or compute the due on this order.
      DataColumn colTotal = new DataColumn("TotalDue", typeof(Decimal), "IIF(OrderId='Total',Sum(SubTotal)+Sum(Tax),SubTotal+Tax)");
      orderTable.Columns.Add(colTotal);

      DataRow row = orderTable.NewRow();
      row["OrderId"] = "Total";
      orderTable.Rows.Add(row);

      Console.WriteLine("The Order table with the expression columns.");
      ShowTable(orderTable);

      Console.WriteLine("Press any key to exit.....");
      Console.ReadKey();
   }

   private static DataTable CreateOrderTable() {
      DataTable orderTable = new DataTable("Order");

      // Define one column.
      DataColumn colId = new DataColumn("OrderId", typeof(String));
      orderTable.Columns.Add(colId);

      DataColumn colDate = new DataColumn("OrderDate", typeof(DateTime));
      orderTable.Columns.Add(colDate);

      // Set the OrderId column as the primary key.
      orderTable.PrimaryKey = new DataColumn[] { colId };

      return orderTable;
   }

   private static DataTable CreateOrderDetailTable() {
      DataTable orderDetailTable = new DataTable("OrderDetail");

      // Define all the columns once.
      DataColumn[] cols ={
                                  new DataColumn("OrderDetailId",typeof(Int32)),
                                  new DataColumn("OrderId",typeof(String)),
                                  new DataColumn("Product",typeof(String)),
                                  new DataColumn("UnitPrice",typeof(Decimal)),
                                  new DataColumn("OrderQty",typeof(Int32)),
                                  new DataColumn("LineTotal",typeof(Decimal),"UnitPrice*OrderQty")
                              };

      orderDetailTable.Columns.AddRange(cols);
      orderDetailTable.PrimaryKey = new DataColumn[] { orderDetailTable.Columns["OrderDetailId"] };
     return orderDetailTable;
   }

   private static void InsertOrders(DataTable orderTable) {
      // Add one row once.
      DataRow row1 = orderTable.NewRow();
      row1["OrderId"] = "O0001";
      row1["OrderDate"] = new DateTime(2013, 3, 1);
      orderTable.Rows.Add(row1);

      DataRow row2 = orderTable.NewRow();
      row2["OrderId"] = "O0002";
      row2["OrderDate"] = new DateTime(2013, 3, 12);
      orderTable.Rows.Add(row2);

      DataRow row3 = orderTable.NewRow();
      row3["OrderId"] = "O0003";
      row3["OrderDate"] = new DateTime(2013, 3, 20);
      orderTable.Rows.Add(row3);
   }

   private static void InsertOrderDetails(DataTable orderDetailTable) {
      // Use an Object array to insert all the rows .
      // Values in the array are matched sequentially to the columns, based on the order in which they appear in the table.
      Object[] rows = {
                                 new Object[]{1,"O0001","Mountain Bike",1419.5,36},
                                 new Object[]{2,"O0001","Road Bike",1233.6,16},
                                 new Object[]{3,"O0001","Touring Bike",1653.3,32},
                                 new Object[]{4,"O0002","Mountain Bike",1419.5,24},
                                 new Object[]{5,"O0002","Road Bike",1233.6,12},
                                 new Object[]{6,"O0003","Mountain Bike",1419.5,48},
                                 new Object[]{7,"O0003","Touring Bike",1653.3,8},
                             };

      foreach (Object[] row in rows) {
         orderDetailTable.Rows.Add(row);
      }
   }

   private static void ShowTable(DataTable table) {
      foreach (DataColumn col in table.Columns) {
         Console.Write("{0,-14}", col.ColumnName);
      }
      Console.WriteLine();

      foreach (DataRow row in table.Rows) {
         foreach (DataColumn col in table.Columns) {
            if (col.DataType.Equals(typeof(DateTime)))
               Console.Write("{0,-14:d}", row[col]);
            else if (col.DataType.Equals(typeof(Decimal)))
               Console.Write("{0,-14:C}", row[col]);
            else
               Console.Write("{0,-14}", row[col]);           
         }
         Console.WriteLine();
      }
      Console.WriteLine();
   }
}

.NET Framework
Disponibile da 1.1

Questo tipo è sicuro per le operazioni di lettura con multithreading. È necessario sincronizzare le operazioni di scrittura.

Torna all'inizio
Mostra: