Adicionando um DataTable a um DataSet

O ADO.NET permite que você crie objetos DataTable e adicione-os a um DataSet existente. Você pode definir informações de restrição para um DataTable usando as propriedades PrimaryKey e Unique.

Exemplo

O exemplo a seguir constrói um DataSet, adiciona um novo objeto DataTable ao DataSet e adiciona três objetos DataColumn à tabela. Finalmente, o código define uma coluna como a coluna de chave primária.

DataSet customerOrders = new("CustomerOrders");

DataTable ordersTable = customerOrders.Tables.Add("Orders");

DataColumn pkOrderID =
    ordersTable.Columns.Add("OrderID", typeof(int));
ordersTable.Columns.Add("OrderQuantity", typeof(int));
ordersTable.Columns.Add("CompanyName", typeof(string));

ordersTable.PrimaryKey = new DataColumn[] { pkOrderID };
Dim customerOrders As 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}

Diferenciação de maiúsculas e minúsculas

Duas ou mais tabelas ou relacionamentos com o mesmo nome, mas maiúsculas e minúsculas diferentes, podem existir em um DataSet. Nesses casos, as referências por nome a tabelas e relações diferenciam maiúsculas de minúsculas. Por exemplo, se o DataSetdataSet contiver tabelas Table1 e table1, você faz referência a Table1 pelo nome como dataSet.Tables["Table1"] e table1 como dataSet.Tables["table1"]. A tentativa de fazer referência a qualquer uma das tabelas como dataSet.Tables["TABLE1"] produzirá uma exceção.

O comportamento de maiúsculas e minúsculas não se aplica se apenas uma tabela ou relacionamento tiver um nome específico. Por exemplo, se DataSet tiver apenas Table1, você poderá fazer referência a ela usando dataSet.Tables["TABLE1"].

Observação

A propriedade CaseSensitive da DataSet não afeta esse comportamento. A propriedade CaseSensitive aplica-se aos dados no DataSet e afeta a classificação, a procura, a filtragem, a imposição de restrições, e assim por diante.

Suporte a namespace

Nas versões do ADO.NET anteriores a 2.0, as duas tabelas não podiam ter o mesmo nome, mesmo se estivessem em namespaces diferentes. Essa limitação foi removida no ADO.NET 2.0. Um DataSet pode conter duas tabelas que têm o mesmo valor de propriedade TableName, mas valores de propriedades Namespace diferentes.

Confira também