O ADO.NET é um conjunto de classes que fazem parte do .NET F...

Próximas questões
Com base no mesmo assunto
Ano: 2013 Banca: FCC Órgão: DPE-SP Prova: FCC - 2013 - DPE-SP - Programador de computador |
Q304588 Programação
O ADO.NET é um conjunto de classes que fazem parte do .NET Framework e que expõem serviços de acesso a dados para programadores da plataforma .NET. Sobre o componente DataSet do ADO.NET no .NET Framework 4.5 é correto afirmar:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Resposta Correta: D

A questão aborda o entendimento do componente DataSet do ADO.NET no .NET Framework 4.5. O ADO.NET é uma parte essencial do .NET Framework utilizada para o acesso a dados, permitindo que os desenvolvedores de software interajam com dados de diversas fontes, principalmente bancos de dados relacionais.

A afirmativa correta (D) diz que um DataSet pode conter uma coleção de um ou mais objetos DataTable. Isso é verdade porque um DataSet é projetado para trabalhar com dados que são independentes ou desconectados da fonte de dados. Os objetos DataTable dentro de um DataSet representam tabelas de dados que consistem em linhas e colunas. Além disso, é possível definir chaves primárias e estrangeiras e criar relações entre tabelas usando objetos DataRelation, o que permite a criação de relações lógicas entre as tabelas, similarmente ao que acontece em um banco de dados relacional.

Dentro de um DataSet, pode-se manipular dados mesmo quando a conexão com a fonte de dados não está disponível, e depois sincronizar as mudanças com a fonte de dados quando necessário. Além disso, um DataSet é capaz de armazenar não apenas dados, mas também metadados sobre os dados, como restrições de integridade e relações entre as tabelas.

É importante destacar que as outras opções apresentam concepções equivocadas sobre o DataSet:

  • A alternativa A está incorreta porque é possível criar um novo DataSet baseado em um existente, por exemplo, usando o método Clone ou Copy.
  • A alternativa B está incorreta porque um DataSet pode ser preenchido manualmente com tabelas de dados, não se restringindo apenas ao uso de um DataAdapter.
  • A alternativa C está incorreta porque o objeto DataRelation é utilizado para definir uma relação entre tabelas distintas dentro de um DataSet, e não para navegar de um DataSet para outro.
  • A alternativa E está incorreta porque um DataSet fornece uma variedade de eventos para controlar diversas ações, como mudanças nos dados, além dos eventos Disposed e Initialized.

Compreender o DataSet e seu papel no ADO.NET é essencial para trabalhar eficientemente com dados desconectados e é frequentemente um tópico cobrado em concursos públicos para programadores .NET.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

a)É possível criar uma instância de um DataSet chamando o construtor da classe DataSet, porém, não é possível criar um novo DataSet baseado em um DataSet existente.   R: Você também pode criar um novo DataSet baseado em um DataSet existente. O novo DataSet pode ser uma cópia exata do DataSet existente, um clone do DataSet que copia a estrutura relacional ou esquema, mas que não contém qualquer um dos dados do DataSet existente, ou um subconjunto do DataSet, contendo apenas a modificação linhas do DataSet existente usando o método GetChanges.      b)A única maneira de se trabalhar com um DataSet é preenchendo o DataSet com tabelas de dados de uma fonte de dados relacional existente usando um DataAdapter. R: Pode usar XML em um DataSet     c) Para permitir a navegação de um DataSet para outro dentro de um DataTable utiliza-se um objeto DataRelation. R: Uma das principais funções de um DataRelation é permitir a navegação a partir de um DataTable para outro dentro de um DataSet. Isso permite que você recupere todos os DataRow objetos relacionados em um DataTable quando dado um único DataRow de um DataTable relacionado. Por exemplo, depois de estabelecer uma DataRelation entre uma tabela de clientes e uma tabela de vendas, você pode recuperar todas as linhas de pedidos para a linha de cliente em particular usando GetChildRows.   e) Um objeto DataSet fornece apenas os eventos Disposed e Initialized. O evento Disposed é usado para executar algum código quando o método Dispose for chamado. R: O objeto DataSet fornece três eventos:  Disposed, Initialized e MergeFailed.

fonte: 
http://msdn.microsoft.com/en-us/library/e80y5yhx.aspx
 

Creio que no item C a banca apenas inverteu. Afinal o DataSet que possui vários DataTables.

 

✅Gabarito(D)  

A) Você cria uma instância de um DataSet chamando o construtor DataSet. Você também pode criar um novo DataSet baseado em um DataSet existente.

Fonte: https://docs.microsoft.com/pt-br/dotnet/framework/data/adonet/dataset-datatable-dataview/creating-a-dataset

B) Como DataSet é independente da fonte de dados, um DataSet pode incluir o local de dados para o aplicativo, e os dados de várias fontes de dados. A interação com fontes de dados existente é controlada com o DataAdapter.

Fonte: https://docs.microsoft.com/pt-br/dotnet/framework/data/adonet/populating-a-dataset-from-a-dataadapter

C) Em um  com vários objetos , você pode usar objetos  para relacionar uma tabela a outra, para navegar pelas tabelas e para retornar as linhas filho ou pai de uma tabela relacionada.

Fonte: https://docs.microsoft.com/pt-br/dotnet/framework/data/adonet/dataset-datatable-dataview/adding-datarelations

D) Gabarito

E) Possui os eventos: Dispose Disposed, Initialized, MergeFailed

Fonte: https://docs.microsoft.com/pt-br/dotnet/framework/data/adonet/dataset-datatable-dataview/handling-dataset-events

Criando um DataSet baseado em outro:

DataSet originalDataSet = new DataSet();

...

// Clone o DataSet existente para criar um novo DataSet com a mesma estrutura

DataSet novoDataSet = originalDataSet.Clone();

// Crie um DataAdapter para preencher as tabelas do novo DataSet

SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM tabela", "string de conexão");

// Use o DataAdapter para preencher as tabelas do novo DataSet com dados do banco de dados

adapter.Fill(novoDataSet, "tabela");

DataRelation é para relação entre tabelas, exemplo:

// Crie uma relação entre as tabelas

DataColumn primaryKeyColumn = customersTable.Columns["CustomerId"];

DataColumn foreignKeyColumn = ordersTable.Columns["CustomerId"];

DataRelation relation = new DataRelation("CustomerOrders", primaryKeyColumn, foreignKeyColumn);

dataSet.Relations.Add(relation);

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo