Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Observação
A DataSet classe e as classes relacionadas são tecnologias herdadas do .NET Framework do início dos anos 2000 que permitem que os aplicativos trabalhem com dados na memória enquanto os aplicativos estão desconectados do banco de dados. As tecnologias são especialmente úteis para aplicativos que permitem aos usuários modificar dados e manter as alterações de volta ao banco de dados. Embora os conjuntos de dados sejam uma tecnologia comprovadamente bem-sucedida, a abordagem recomendada para novos aplicativos .NET é usar o Entity Framework Core. O Entity Framework fornece uma maneira mais natural de trabalhar com dados tabulares como modelos de objeto e tem uma interface de programação mais simples.
Para pesquisar registos específicos num conjunto de dados, utilize o método FindBy no DataTable, escreva a sua própria instrução foreach para fazer um loop sobre a coleção Rows da tabela ou use LINQ to DataSet.
Sensibilidade a maiúsculas e minúsculas de conjuntos de dados
Dentro de um conjunto de dados, os nomes de tabelas e colunas não diferenciam maiúsculas de minúsculas por padrão; isto é, uma tabela num conjunto de dados chamada "Clientes" pode ser referida como "clientes". Isto está de acordo com as convenções de nomenclatura em muitos sistemas de gestão de bases de dados, incluindo o SQL Server. No SQL Server, o comportamento padrão é que os nomes dos elementos de dados não podem ser diferenciados apenas pela capitalização.
Observação
Ao contrário dos conjuntos de dados, os documentos XML são sensíveis a maiúsculas e minúsculas, portanto, os nomes dos elementos de dados definidos nos esquemas também o são. Por exemplo, o protocolo de esquema permite que o esquema defina uma tabela chamada Customers e uma tabela diferente chamada customers. Isso pode resultar em conflitos de nomes quando é utilizado um esquema com elementos que diferem apenas por maiúsculas e minúsculas para a geração de uma classe de conjunto de dados.
A sensibilidade a maiúsculas e minúsculas, no entanto, pode ser um fator na interpretação dos dados no conjunto de dados. Por exemplo, se filtrar dados numa tabela de base de dados, os critérios de pesquisa poderão retornar resultados diferentes, dependendo de a comparação ser sensível a maiúsculas e minúsculas. Você pode controlar a sensibilidade a maiúsculas e minúsculas na filtragem, pesquisa e classificação definindo a propriedade do conjunto de dados CaseSensitive. Todas as tabelas no conjunto de dados herdam o valor dessa propriedade por padrão. (Você pode substituir essa propriedade para cada tabela individual definindo a propriedade da CaseSensitive tabela.)
Localizar uma linha específica numa tabela de dados
Para localizar uma linha em um conjunto de dados tipado com um valor de chave primária
Para localizar uma linha, chame o método tipado explicitamente
FindByque utiliza a chave primária da tabela.No exemplo a seguir, a
CustomerIDcoluna é a chave primária daCustomerstabela. Isso significa que o método geradoFindByéFindByCustomerID. O exemplo mostra como atribuir um específico DataRow a uma variável usando o método geradoFindBy.
Para localizar uma linha em um conjunto de dados sem tipo com um valor de chave primária
Chame o Find método de uma DataRowCollection coleção, passando a chave primária como um parâmetro.
O exemplo a seguir mostra como declarar uma nova linha chamada
foundRowe atribuir-lhe o valor de retorno do Find método. Se a chave primária for encontrada, o conteúdo do índice de coluna 1 será exibido em uma caixa de mensagem.
Localizar linhas por valores de coluna
Para localizar linhas com base nos valores em qualquer coluna
As tabelas de dados são criadas com o Select método, que retorna uma matriz de DataRows com base na expressão passada para o Select método. Para obter mais informações sobre como criar expressões válidas, consulte a seção "Sintaxe da expressão" da página sobre a Expression propriedade.
O exemplo a seguir mostra como usar o Select método do DataTable para localizar linhas específicas.
Aceder a registos relacionados
Quando as tabelas em um conjunto de dados estão relacionadas, um DataRelation objeto pode disponibilizar os registros relacionados em outra tabela. Por exemplo, um conjunto de dados contendo tabelas Customers e Orders pode ser disponibilizado.
Você pode usar um objeto DataRelation para localizar registros relacionados chamando o método GetChildRows da DataRow na tabela principal. Esse método retorna uma matriz de registros filho relacionados. Ou, pode chamar o GetParentRow método de um DataRow na tabela filha. Esse método retorna um único DataRow da tabela pai.
Esta página fornece exemplos usando conjuntos de dados digitados. Para obter informações sobre como navegar em relações em conjuntos de dados sem tipo, consulte Navegando DataRelations.
Observação
Se você estiver trabalhando em um aplicativo do Windows Forms e usando os recursos de vinculação de dados para exibir dados, o formulário gerado pelo designer pode fornecer funcionalidade suficiente para seu aplicativo. Para obter mais informações, consulte Vincular controles a dados no Visual Studio. Especificamente, consulte Relações em conjuntos de dados.
Os exemplos de código a seguir demonstram como navegar para cima e para baixo em relacionamentos em conjuntos de dados tipados. Os exemplos de código utilizam as variáveis tipadas DataRow(NorthwindDataSet.OrdersRow) e os métodos FindByPrimaryKey (FindByCustomerID) gerados para localizar uma linha desejada e devolver os registos relacionados. Os exemplos compilam e executam corretamente somente se você tiver:
Uma instância de um conjunto de dados nomeado
NorthwindDataSetcom umaCustomerstabela.Uma
Orderstabela.Uma relação denominada
FK_Orders_Customersrelacionando as duas tabelas.
Além disso, ambas as tabelas precisam ser preenchidas com dados para que todos os registros sejam retornados.
Para retornar os registros filho de um registro pai selecionado
Chame o GetChildRows método de uma linha de dados específica
Customerse retorne uma matriz de linhas daOrderstabela:
Para retornar o registro pai de um registro filho selecionado
Chame o GetParentRow método de uma linha de dados específica
Orderse retorne uma única linha daCustomerstabela: