Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Classe DataTable

 

Publicado: agosto de 2016

System_CAPS_noteObservação

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Representa uma tabela de dados na memória.

Namespace:   System.Data
Assembly:  System.Data (em System.Data.dll)


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

NomeDescrição
System_CAPS_pubmethodDataTable()

Inicializa uma nova instância da classe DataTable sem argumentos.

System_CAPS_protmethodDataTable(SerializationInfo, StreamingContext)

Inicializa uma nova instância da classe DataTable com o SerializationInfo e o StreamingContext.

System_CAPS_pubmethodDataTable(String)

Inicializa uma nova instância da classe DataTable com o nome da tabela especificada.

System_CAPS_pubmethodDataTable(String, String)

Inicializa uma nova instância da classe DataTable usando o nome de tabela e o namespace especificados.

NomeDescrição
System_CAPS_pubpropertyCaseSensitive

Indica se a comparação de cadeias de caracteres dentro da tabela diferencia maiúsculas de minúsculas.

System_CAPS_pubpropertyChildRelations

Obtém a coleção das relações filho desta DataTable.

System_CAPS_pubpropertyColumns

Obtém a coleção de colunas que pertencem a essa tabela.

System_CAPS_pubpropertyConstraints

Obtém a coleção de restrições mantidas por essa tabela.

System_CAPS_pubpropertyContainer

Obtém o contêiner para o componente.(Herdado de MarshalByValueComponent.)

System_CAPS_pubpropertyDataSet

Obtém o DataSet ao qual essa tabela pertence.

System_CAPS_pubpropertyDefaultView

Obtém uma exibição personalizada da tabela que pode incluir uma exibição filtrada ou uma posição do cursor.

System_CAPS_pubpropertyDesignMode

Obtém um valor que indica se o componente está atualmente no modo de design.(Herdado de MarshalByValueComponent.)

System_CAPS_pubpropertyDisplayExpression

Obtém ou define a expressão que retorna um valor usado para representar essa tabela na interface do usuário. A propriedade DisplayExpression permite exibir o nome da tabela em uma interface do usuário.

System_CAPS_protpropertyEvents

Obtém a lista de manipuladores de eventos que estão anexados a este componente.(Herdado de MarshalByValueComponent.)

System_CAPS_pubpropertyExtendedProperties

Obtém a coleção de informações de usuário personalizadas.

System_CAPS_pubpropertyHasErrors

Obtém um valor que indica se há erros em alguma das linhas em uma das tabelas de DataSet a que a tabela pertence.

System_CAPS_pubpropertyIsInitialized

Obtém um valor que indica se o DataTable é inicializado.

System_CAPS_pubpropertyLocale

Obtém ou define as informações de localidade usadas para comparar cadeias de caracteres na tabela.

System_CAPS_pubpropertyMinimumCapacity

Obtém ou define o tamanho inicial para essa tabela.

System_CAPS_pubpropertyNamespace

Obtém ou define o namespace da representação XML dos dados armazenados no DataTable.

System_CAPS_pubpropertyParentRelations

Obtém a coleção de relações de pai desta DataTable.

System_CAPS_pubpropertyPrefix

Obtém ou define o namespace da representação XML dos dados armazenados no DataTable.

System_CAPS_pubpropertyPrimaryKey

Obtém ou define uma matriz de colunas que funcionam como chaves primárias da tabela de dados.

System_CAPS_pubpropertyRemotingFormat

Obtém ou define o formato de serialização.

System_CAPS_pubpropertyRows

Obtém a coleção de linhas que pertencem a essa tabela.

System_CAPS_pubpropertySite

Obtém ou define um System.ComponentModel.ISite para o DataTable.(Substitui o MarshalByValueComponent.Site.)

System_CAPS_pubpropertyTableName

Obtém ou define o nome de DataTable.

NomeDescrição
System_CAPS_pubmethodAcceptChanges()

Confirma todas as alterações feitas à tabela desde a última vez em que AcceptChanges foi chamado.

System_CAPS_pubmethodBeginInit()

Começa a inicialização de um DataTable usado em um formulário ou por outro componente. A inicialização ocorre no tempo de execução.

System_CAPS_pubmethodBeginLoadData()

Desativa as notificações, a manutenção de índice e as restrições durante o carregamento de dados.

System_CAPS_pubmethodClear()

Limpa o DataTable de todos os dados.

System_CAPS_pubmethodClone()

Clona a estrutura do DataTable, incluindo todos os esquemas e restrições de DataTable.

System_CAPS_pubmethodCompute(String, String)

Calcula a expressão especificada nas linhas atuais que passam os critérios de filtro.

System_CAPS_pubmethodCopy()

Copia a estrutura e os dados para este DataTable.

System_CAPS_pubmethodCreateDataReader()

Retorna um DataTableReader correspondente aos dados nessa DataTable.

System_CAPS_protmethodCreateInstance()

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Cria uma nova instância de DataTable.

System_CAPS_pubmethodDispose()

Libera todos os recursos usados pelo MarshalByValueComponent.(Herdado de MarshalByValueComponent.)

System_CAPS_protmethodDispose(Boolean)

Libera os recursos não gerenciados usados pelo MarshalByValueComponent e opcionalmente libera os recursos gerenciados.(Herdado de MarshalByValueComponent.)

System_CAPS_pubmethodEndInit()

Encerra a inicialização de um DataTable que é usado em um formulário ou por outro componente. A inicialização ocorre no tempo de execução.

System_CAPS_pubmethodEndLoadData()

Desativa as notificações, a manutenção de índice e as restrições após o carregamento de dados.

System_CAPS_pubmethodEquals(Object)

Determina se o objeto especificado é igual ao objeto atual.(Herdado de Object.)

System_CAPS_protmethodFinalize()

Permite que um objeto tente liberar recursos e executar outras operações de limpeza antes de ser recuperado pela coleta de lixo.(Herdado de MarshalByValueComponent.)

System_CAPS_pubmethodGetChanges()

Obtém uma cópia do DataTable que contém todas as alterações feitas nele desde que ele foi carregado ou que o AcceptChanges foi chamado pela última vez.

System_CAPS_pubmethodGetChanges(DataRowState)

Obtém uma cópia do DataTable que contém todas as alterações feitas desde o último carregamento ou desde que AcceptChanges foi chamado, filtrado por DataRowState.

System_CAPS_pubmethodSystem_CAPS_staticGetDataTableSchema(XmlSchemaSet)

Esse método retorna uma instância XmlSchemaSet que contém a linguagem WSDL que descreve o DataTable para os Serviços Web.

System_CAPS_pubmethodGetErrors()

Obtém uma matriz de objetos DataRow que contêm erros.

System_CAPS_pubmethodGetHashCode()

Serve como a função de hash padrão.(Herdado de Object.)

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

Popula um objeto de informações de serialização com os dados necessários para serializar o DataTable.

System_CAPS_protmethodGetRowType()

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Obtém o tipo de linha.

System_CAPS_protmethodGetSchema()

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte IXmlSerializable.GetSchema.

System_CAPS_pubmethodGetService(Type)

Obtém o implementador do IServiceProvider.(Herdado de MarshalByValueComponent.)

System_CAPS_pubmethodGetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_pubmethodImportRow(DataRow)

Copia um DataRow em um DataTable, preservando quaisquer configurações de propriedade, bem como os valores originais e atuais.

System_CAPS_pubmethodLoad(IDataReader)

Preenche um DataTable com valores de uma fonte de dados usando o IDataReaderfornecido. Se o DataTable já contiver linhas, os dados de entrada da fonte de dados serão mesclados com as linhas existentes.

System_CAPS_pubmethodLoad(IDataReader, LoadOption)

Preenche um DataTable com valores de uma fonte de dados usando o IDataReaderfornecido. Se o DataTable já contiver linhas, os dados de entrada da fonte de dados serão mesclados com as linhas existentes de acordo com o valor do parâmetro loadOption.

System_CAPS_pubmethodLoad(IDataReader, LoadOption, FillErrorEventHandler)

Preenche um DataTable com valores de uma fonte de dados usando o IDataReader fornecido comum delegado de tratamento de erro.

System_CAPS_pubmethodLoadDataRow(Object[], Boolean)

Localiza e atualiza uma linha específica. Se nenhuma linha correspondente for encontrada, uma nova linha será criada usando os valores fornecidos.

System_CAPS_pubmethodLoadDataRow(Object[], LoadOption)

Localiza e atualiza uma linha específica. Se nenhuma linha correspondente for encontrada, uma nova linha será criada usando os valores fornecidos.

System_CAPS_protmethodMemberwiseClone()

Cria uma cópia superficial do Object atual.(Herdado de Object.)

System_CAPS_pubmethodMerge(DataTable)

Mesclar o DataTable especificado ao DataTable atual.

System_CAPS_pubmethodMerge(DataTable, Boolean)

Mescla o DataTable especificado com o DataTable atual, indicando se as alterações no DataTable atual devem ser preservadas.

System_CAPS_pubmethodMerge(DataTable, Boolean, MissingSchemaAction)

Mescla o DataTable especificado com o DataTable atual, indicando se as alterações e a maneira como manipular o esquema ausente no DataTable atual devem ser preservadas.

System_CAPS_pubmethodNewRow()

Cria um novo DataRow com o mesmo esquema que a tabela.

System_CAPS_protmethodNewRowArray(Int32)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Retorna uma matriz de DataRow.

System_CAPS_protmethodNewRowFromBuilder(DataRowBuilder)

Cria uma nova linha de uma linha existente.

System_CAPS_protmethodOnColumnChanged(DataColumnChangeEventArgs)

Aciona o evento ColumnChanged.

System_CAPS_protmethodOnColumnChanging(DataColumnChangeEventArgs)

Aciona o evento ColumnChanging.

System_CAPS_protmethodOnPropertyChanging(PropertyChangedEventArgs)

Aciona o evento PropertyChanged.

System_CAPS_protmethodOnRemoveColumn(DataColumn)

Notifica o DataTable que um DataColumn está sendo removido.

System_CAPS_protmethodOnRowChanged(DataRowChangeEventArgs)

Aciona o evento RowChanged.

System_CAPS_protmethodOnRowChanging(DataRowChangeEventArgs)

Aciona o evento RowChanging.

System_CAPS_protmethodOnRowDeleted(DataRowChangeEventArgs)

Aciona o evento RowDeleted.

System_CAPS_protmethodOnRowDeleting(DataRowChangeEventArgs)

Aciona o evento RowDeleting.

System_CAPS_protmethodOnTableCleared(DataTableClearEventArgs)

Aciona o evento TableCleared.

System_CAPS_protmethodOnTableClearing(DataTableClearEventArgs)

Aciona o evento TableClearing.

System_CAPS_protmethodOnTableNewRow(DataTableNewRowEventArgs)

Aciona o evento TableNewRow.

System_CAPS_pubmethodReadXml(Stream)

Lê o esquema XML e dados para o DataTable usando o Stream especificado.

System_CAPS_pubmethodReadXml(String)

Lê o esquema XML e dados para o DataTable do arquivo especificado.

System_CAPS_pubmethodReadXml(TextReader)

Lê o esquema XML e dados para o DataTable usando o TextReader especificado.

System_CAPS_pubmethodReadXml(XmlReader)

Lê o esquema XML e dados no DataTable usando o XmlReader especificado.

System_CAPS_pubmethodReadXmlSchema(Stream)

Lê um esquema XML para a DataTable usando o fluxo especificado.

System_CAPS_pubmethodReadXmlSchema(String)

Lê um esquema XML para a DataTable do arquivo especificado.

System_CAPS_pubmethodReadXmlSchema(TextReader)

Lê um esquema XML para a DataTable usando o TextReader especificado.

System_CAPS_pubmethodReadXmlSchema(XmlReader)

Lê um esquema XML para a DataTable usando o XmlReader especificado.

System_CAPS_protmethodReadXmlSerializable(XmlReader)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Lê de um fluxo XML.

System_CAPS_pubmethodRejectChanges()

Reverte todas as alterações feitas na tabela desde que foi carregado ou desde a última vez em que AcceptChanges foi chamado.

System_CAPS_pubmethodReset()

Redefine o DataTable com o estado original. A redefinição remove todos os dados, índices, relações e colunas da tabela. Se um DataSet incluir uma DataTable, a tabela ainda fará parte do DataSet depois que a tabela for redefinida.

System_CAPS_pubmethodSelect()

Obtém uma matriz de todos os objetos DataRow.

System_CAPS_pubmethodSelect(String)

Obtém uma matriz de todos os objetos DataRow que correspondem aos critérios de filtro.

System_CAPS_pubmethodSelect(String, String)

Obtém uma matriz de todos os objetos DataRow que correspondem aos critérios de filtro, na ordem de classificação especificada.

System_CAPS_pubmethodSelect(String, String, DataViewRowState)

Obtém uma matriz de todos os objetos DataRow que correspondem ao filtro, na ordem de classificação correspondente ao estado especificado.

System_CAPS_pubmethodToString()

Obterá o TableName e a DisplayExpression, se houver algum como uma cadeia de caracteres concatenada.(Substitui o MarshalByValueComponent.ToString().)

System_CAPS_pubmethodWriteXml(Stream)

Grava o conteúdo atual do DataTable como XML usando o Stream especificado.

System_CAPS_pubmethodWriteXml(Stream, Boolean)

Grava o conteúdo atual do DataTable como XML usando o Stream especificado. Para salvar os dados para a tabela e todos os descendentes, defina o parâmetro writeHierarchy como true.

System_CAPS_pubmethodWriteXml(Stream, XmlWriteMode)

Grava os dados atuais e, opcionalmente, o esquema do DataTable no arquivo especificado usando o XmlWriteMode especificado. Para gravar o esquema, defina o valor do parâmetro mode como WriteSchema.

System_CAPS_pubmethodWriteXml(Stream, XmlWriteMode, Boolean)

Grava os dados atuais e, opcionalmente, o esquema do DataTable no arquivo especificado usando o XmlWriteMode especificado. Para gravar o esquema, defina o valor do parâmetro mode como WriteSchema. Para salvar os dados para a tabela e todos os descendentes, defina o parâmetro writeHierarchy como true.

System_CAPS_pubmethodWriteXml(String)

Grava o conteúdo atual da DataTable como XML usando o arquivo especificado.

System_CAPS_pubmethodWriteXml(String, Boolean)

Grava o conteúdo atual do DataTable como XML usando o arquivo especificado. Para salvar os dados para a tabela e todos os descendentes, defina o parâmetro writeHierarchy como true.

System_CAPS_pubmethodWriteXml(String, XmlWriteMode)

Grava os dados atuais e, opcionalmente, o esquema da DataTable usando o arquivo especificado e o XmlWriteMode. Para gravar o esquema, defina o valor do parâmetro mode como WriteSchema.

System_CAPS_pubmethodWriteXml(String, XmlWriteMode, Boolean)

Grava os dados atuais e, opcionalmente, o esquema da DataTable usando o arquivo especificado e o XmlWriteMode. Para gravar o esquema, defina o valor do parâmetro mode como WriteSchema. Para salvar os dados para a tabela e todos os descendentes, defina o parâmetro writeHierarchy como true.

System_CAPS_pubmethodWriteXml(TextWriter)

Grava o conteúdo atual do DataTable como XML usando o TextWriter especificado.

System_CAPS_pubmethodWriteXml(TextWriter, Boolean)

Grava o conteúdo atual do DataTable como XML usando o TextWriter especificado. Para salvar os dados para a tabela e todos os descendentes, defina o parâmetro writeHierarchy como true.

System_CAPS_pubmethodWriteXml(TextWriter, XmlWriteMode)

Grava os dados atuais e, opcionalmente, o esquema do DataTable usando o TextWriter e o XmlWriteMode especificados. Para gravar o esquema, defina o valor do parâmetro mode como WriteSchema.

System_CAPS_pubmethodWriteXml(TextWriter, XmlWriteMode, Boolean)

Grava os dados atuais e, opcionalmente, o esquema do DataTable usando o TextWriter e o XmlWriteMode especificados. Para gravar o esquema, defina o valor do parâmetro mode como WriteSchema. Para salvar os dados para a tabela e todos os descendentes, defina o parâmetro writeHierarchy como true.

System_CAPS_pubmethodWriteXml(XmlWriter)

Grava o conteúdo atual do DataTable como XML usando o XmlWriter especificado.

System_CAPS_pubmethodWriteXml(XmlWriter, Boolean)

Grava o conteúdo atual do DataTable como XML usando o XmlWriter especificado.

System_CAPS_pubmethodWriteXml(XmlWriter, XmlWriteMode)

Grava os dados atuais e, opcionalmente, o esquema do DataTable usando o XmlWriter e o XmlWriteMode especificados. Para gravar o esquema, defina o valor do parâmetro mode como WriteSchema.

System_CAPS_pubmethodWriteXml(XmlWriter, XmlWriteMode, Boolean)

Grava os dados atuais e, opcionalmente, o esquema do DataTable usando o XmlWriter e o XmlWriteMode especificados. Para gravar o esquema, defina o valor do parâmetro mode como WriteSchema. Para salvar os dados para a tabela e todos os descendentes, defina o parâmetro writeHierarchy como true.

System_CAPS_pubmethodWriteXmlSchema(Stream)

Grava a estrutura de dados atual do DataTable como um esquema XML para o fluxo especificado.

System_CAPS_pubmethodWriteXmlSchema(Stream, Boolean)

Grava a estrutura de dados atual do DataTable como um esquema XML para o fluxo especificado. Para salvar o esquema da tabela e todos os descendentes, defina o parâmetro writeHierarchy como true.

System_CAPS_pubmethodWriteXmlSchema(String)

Grava a estrutura de dados atual do DataTable como um esquema XML para o arquivo especificado.

System_CAPS_pubmethodWriteXmlSchema(String, Boolean)

Grava a estrutura de dados atual do DataTable como um esquema XML para o arquivo especificado. Para salvar o esquema da tabela e todos os descendentes, defina o parâmetro writeHierarchy como true.

System_CAPS_pubmethodWriteXmlSchema(TextWriter)

Grava a estrutura de dados atual do DataTable como um esquema XML usando o TextWriter especificado.

System_CAPS_pubmethodWriteXmlSchema(TextWriter, Boolean)

Grava a estrutura de dados atual do DataTable como um esquema XML usando o TextWriter especificado. Para salvar o esquema da tabela e todos os descendentes, defina o parâmetro writeHierarchy como true.

System_CAPS_pubmethodWriteXmlSchema(XmlWriter)

Grava a estrutura de dados atual do DataTable como um esquema XML usando o XmlWriter especificado.

System_CAPS_pubmethodWriteXmlSchema(XmlWriter, Boolean)

Grava a estrutura de dados atual do DataTable como um esquema XML usando o XmlWriter especificado. Para salvar o esquema da tabela e todos os descendentes, defina o parâmetro writeHierarchy como true.

NomeDescrição
System_CAPS_protfieldfInitInProgress

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Verifica se a inicialização está em andamento. A inicialização ocorre no tempo de execução.

NomeDescrição
System_CAPS_pubeventColumnChanged

Ocorre depois que um valor foi alterado para o DataColumn especificado em um DataRow.

System_CAPS_pubeventColumnChanging

Ocorre quando um valor está sendo alterado para o DataColumn especificado em um DataRow.

System_CAPS_pubeventDisposed

Adiciona um manipulador de eventos para escutar o evento Disposed no componente.(Herdado de MarshalByValueComponent.)

System_CAPS_pubeventInitialized

Ocorre após o DataTable ser inicializado.

System_CAPS_pubeventRowChanged

Ocorre após um DataRow ter sido alterado com êxito.

System_CAPS_pubeventRowChanging

Ocorre quando uma DataRow está sendo alterada.

System_CAPS_pubeventRowDeleted

Ocorre depois que uma linha na tabela é excluída.

System_CAPS_pubeventRowDeleting

Ocorre antes de uma linha na tabela estar prestes a ser excluída.

System_CAPS_pubeventTableCleared

Ocorre depois que uma DataTable é limpa.

System_CAPS_pubeventTableClearing

Ocorre quando uma DataTable é limpa.

System_CAPS_pubeventTableNewRow

Ocorre quando um novo DataRow é inserido.

NomeDescrição
System_CAPS_pubinterfaceSystem_CAPS_privmethodIListSource.GetList()

Para obter uma descrição desse membro, consulte IListSource.GetList.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIXmlSerializable.GetSchema()

Para obter uma descrição desse membro, consulte IXmlSerializable.GetSchema.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIXmlSerializable.ReadXml(XmlReader)

Para obter uma descrição desse membro, consulte IXmlSerializable.ReadXml.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIXmlSerializable.WriteXml(XmlWriter)

Para obter uma descrição desse membro, consulte IXmlSerializable.WriteXml.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIListSource.ContainsListCollection

Para obter uma descrição desse membro, consulte IListSource.ContainsListCollection.

NomeDescrição
System_CAPS_pubmethodAsDataView()

Sobrecarregado. Cria e retorna um objeto DataView habilitado para LINQ.(Definido pelo DataTableExtensions.)

System_CAPS_pubmethodAsEnumerable()

Retorna um objeto IEnumerable<T> em que o parâmetro genérico T é DataRow. Esse objeto pode ser usado em uma expressão ou um método de consulta LINQ.(Definido pelo DataTableExtensions.)

O DataTable é um objeto central na biblioteca do ADO.NET. Outros objetos que usam o DataTable incluem o DataSet e DataView.

Ao acessar DataTable objetos, observe que eles são condicionalmente diferencia maiusculas de minúsculas. Por exemplo, se um DataTable chamado "mydatatable" e outro chamado "Mydatatable", uma cadeia de caracteres usada para pesquisar uma das tabelas é considerada como maiusculas e minúsculas. No entanto, se existe "mydatatable" e "Mydatatable" não, a cadeia de caracteres de pesquisa é considerada como maiusculas e minúsculas. Um DataSet pode conter dois DataTable objetos que têm o mesmo TableName o valor da propriedade mas diferente Namespace valores de propriedade. Para obter mais informações sobre como trabalhar com DataTable objetos, consulte Criando uma DataTable.

Se você estiver criando um DataTable programaticamente, você deve primeiro definir seu esquema adicionando DataColumn objetos para o DataColumnCollection (acessados por meio de Columns propriedade). Para obter mais informações sobre como adicionar DataColumn objetos, consulte Adicionando colunas a um DataTable.

Para adicionar linhas a uma DataTable, primeiro você deve usar o NewRow método para retornar uma nova DataRow objeto. O NewRow método retorna uma linha com o esquema de DataTable, conforme definido na tabela DataColumnCollection. O número máximo de linhas que um DataTable pode repositório é 16,777,216. Para obter mais informações, consulte Adicionando dados a um DataTable.

O DataTable também contém uma coleção de Constraint objetos que podem ser usados para garantir a integridade dos dados. Para obter mais informações, consulte Restrições de DataTable.

Existem várias DataTable eventos que podem ser usados para determinar quando as alterações são feitas em uma tabela. Isso inclui RowChanged, RowChanging, RowDeleting, e RowDeleted. Para obter mais informações sobre os eventos que podem ser usados com um DataTable, consulte Manipulação de eventos de DataTable.

Quando uma instância de DataTable é criada, algumas de leitura/gravação propriedades são definidas como valores iniciais. Para obter uma lista desses valores, consulte o DataTable.DataTable tópico de construtor.

System_CAPS_noteObservação

O DataSet e DataTable objetos herdam MarshalByValueComponente oferece suporte a ISerializable interface de comunicação remota do .NET Framework. Esses são os únicos objetos ADO.NET que você pode usar para comunicação remota do .NET Framework.

O exemplo a seguir cria dois DataTable objetos e um DataRelation e o adiciona os novos objetos para um DataSet. As tabelas são exibidas em um DataGridView controle.

// 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");
}

Este exemplo demonstra como criar uma tabela de dados manualmente com as definições de esquema específico:

  • Criar várias tabelas de dados e definir as colunas iniciais.

  • Crie as restrições de tabela.

  • Insira os valores e exibir as tabelas.

  • Criar colunas de expressão e exibir as tabelas.

Projetos c# e Visual Basic com este exemplo de código podem ser encontrados em 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
Disponível desde 1.1

Este tipo é seguro para operações de leitura e multithread. Você deve sincronizar todas as operações de gravação.

Retornar ao início
Mostrar: