Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

DataTable Classe

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

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

Ao acessar objetos DataTable, note que eles são condicionalmente diferenciados entre maiúsculas e minúsculas. Por exemplo, se um DataTable é denominado "mydatatable" e outro chamado "Mydatatable", uma seqüência de caracteres é usada para pesquisar uma das tabelas é considerada como diferenciação de maiúsculas e minúsculas. No entanto, se "mydatatable" existe e "Mydatatable" não, a seqüência de pesquisa é considerada sem distinção entre maiúsculas e minúsculas. Um DataSet pode conter dois DataTable objetos que tenham o mesmo valor na propriedade TableName, mas valores diferentes na propriedade Namespace. Para obter mais informações sobre como trabalhar com objetos DataTable, consulte Creating a DataTable (ADO.NET).

Se você estiver criando um DataTable programaticamente, você deve primeiro definir seu esquema adicionando objetos DataColumn para o DataColumnCollection (acessado através da propriedade Columns). Para obter mais informações sobre como adicionar objetos DataColumn, consulte Adding Columns to a DataTable (ADO.NET).

Para adicionar linhas em um DataTable , você deve primeiro usar o método NewRow para retornar um novo objeto DataRow. O método NewRow retorna uma linha com o esquema do DataTable, conforme ele é definido pela tabela DataColumnCollection. O número máximo de linhas que um DataTable pode armazenar é 16,777,216. Para obter mais informações, consulte Adding Data to a DataTable.

The DataTable also contains a collection of Constraint objects that can be used to ensure the integrity of the data. Para obter mais informações, consulte DataTable Constraints (ADO.NET).

São muitos os eventos do DataTable que podem ser usados para determinar quando alterações são feitas em uma tabela. Esses incluem RowChanged, RowChangingRowDeleting e RowDeleted. Para obter mais informações sobre os eventos que podem ser usados com um DataTable, consulte DataTable Event Handling.

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

ObservaçãoObservação:

Os objetos DataSet e DataTable herdam de MarshalByValueComponent e suportam a interface ISerializable para o .NET Framework Remoting. Esses são os únicos objetos do ADO.NET que você pode usar para o .NET Framework Remoting.

TopicLocation
Como: Criar DataTablesdv_raddata
Como: Criar DataTablesData Access in Visual Studio
Como: Criar DataTablesdv_raddata

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

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


Esse tipo é seguro para operações de leitura multisegmentadas. Você deve sincronizar as operações de gravação.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft