Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 são desconectados do banco de dados. As tecnologias são especialmente úteis para aplicativos que permitem que os usuários modifiquem dados e persistam as alterações no 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 registros específicos em um conjunto de dados, use o FindBy método na DataTable, escreva sua própria instrução foreach para fazer loop sobre a coleção Rows da tabela ou use LINQ to DataSet.
Diferenciação de maiúsculas e minúsculas do conjunto de dados
Em um conjunto de dados, os nomes de tabelas e colunas são insensíveis a maiúsculas e minúsculas por padrão. Isso significa que uma tabela em um conjunto de dados chamado "Clientes" pode ser referida como "clientes". Isso está de acordo com as convenções de nomenclatura em muitos bancos de dados, incluindo SQL Server. No SQL Server, o comportamento padrão é que os nomes dos elementos de dados não podem ser distinguidos somente por caso.
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 em esquemas são sensíveis a maiúsculas e minúsculas. 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 colisões de nome quando um esquema que contém elementos que diferem somente por caso é usado para gerar uma classe de conjunto de dados.
No entanto, a diferenciação de maiúsculas e minúsculas pode ser um fator na forma como os dados são interpretados no conjunto de dados. Por exemplo, se você filtrar dados em uma tabela de conjunto de dados, os critérios de pesquisa poderão retornar resultados diferentes dependendo de se a comparação diferencia maiúsculas de minúsculas. Você pode controlar a diferenciação de maiúsculas e minúsculas da filtragem, pesquisa e classificação definindo a propriedade CaseSensitive do conjunto de dados. 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 em uma tabela de dados
Para localizar uma linha em um conjunto de dados digitado com um valor de chave primária
Para localizar uma linha, chame o método com tipagem forte
FindByque usa 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 uma variável específica DataRow usando o método geradoFindBy.
Para localizar uma linha em um conjunto de dados não tipado 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 atribuí-la ao valor retornado 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 de Expressão" da página sobre a Expression propriedade.
O exemplo a seguir mostra como usar o método Select do DataTable para localizar linhas específicas.
Acessar registros relacionados
Quando 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 Customers e Orders tabelas pode ser disponibilizado.
Você pode usar um objeto DataRelation para localizar registros relacionados ao chamar o método GetChildRows de um DataRow na tabela pai. Esse método retorna uma matriz de registros filho relacionados. Ou você pode chamar o método GetParentRow de um DataRow na tabela filho. Esse método retorna um único DataRow da tabela pai.
Esta página fornece exemplos usando conjuntos de dados tipados. Para obter informações sobre como navegar em relações em conjuntos de dados não tipados, consulte Navegando por DataRelations.
Observação
Se você estiver trabalhando em um aplicativo do Windows Forms e usando os recursos de associação de dados para exibir dados, o formulário gerado pelo designer poderá fornecer funcionalidade suficiente para seu aplicativo. Para obter mais informações, consulte Associar 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 nas relações em conjuntos de dados tipado. Os exemplos de código usam os métodos tipados DataRows (NorthwindDataSet.OrdersRow) e FindByPrimaryKey (FindByCustomerID) gerados para localizar uma linha desejada e retornar os registros relacionados. Os exemplos compilam e são executados corretamente somente se você tiver:
Uma instância de um conjunto de dados nomeado
NorthwindDataSetcom umaCustomerstabela.Uma tabela
Orders.Uma relação chamada
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: