Partilhar via


Adicionando uma DataTable a um DataSet

ADO.NET permite criar DataTable objetos e adicioná-los a um DataSetarquivo . Você pode definir informações de restrição para a DataTable usando as PrimaryKey propriedades e Unique .

Exemplo

O exemplo a seguir constrói um DataSet, adiciona um novo DataTable objeto ao e, em DataSetseguida, adiciona três DataColumn objetos à 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}

Sensibilidade a maiúsculas e minú

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

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

Nota

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

Suporte a namespace

Em versões do ADO.NET anteriores à 2.0, duas tabelas não podiam ter o mesmo nome, mesmo que estivessem em namespaces diferentes. Esta limitação foi removida no ADO.NET 2.0. A DataSet pode conter duas tabelas que têm o mesmo TableName valor de propriedade, mas valores de propriedade diferentes Namespace .

Consulte também