Questão nº 28
Questão de Tecnologias da Informação · FCC SEFAZ-SC 2018 - Conhecimentos Específicos (P3) (nº 28)
Considere o trecho de código abaixo retirado de uma classe que faz parte de uma aplicação ASP.NET que utiliza ADO.NET.
```
private DataSet CreateDataSet()
{
DataSet dataset = new DataSet();
DataTable Funcionario = CreateFuncionarioTable();
dataset.Tables.Add(Funcionario);
return dataset;
}
private DataTable CreateFuncionarioTable()
{
DataTable Funcionario = new DataTable("Funcionario");
I
return Funcionario;
}
```
Para adicionar na tabela `Funcionario` um campo do tipo inteiro chamado `Id`, a lacuna I, desse código, deve ser corretamente preenchida com
- A`dataset.Funcionario("int","Id");`
- B`Funcionario.AddField("int","Id");`
- C`dataset.AddColumn(Funcionario,"System.Int64", "Id");`
- D`AddNewColumn(Funcionario, "System.Int32", "Id");` (alternativa correta)
- E`AddColumn(Funcionario, "System.Integer64", "Id");`
Resposta comentada
Gabarito Alternativa D
Em ADO.NET, um DataTable é como uma tabela de banco de dados na memória, e para definir suas colunas (campos), usamos objetos DataColumn que são adicionados à coleção Columns do DataTable.
- (A) Incorreta:
dataseté umDataSet, que contémDataTables, não é o objeto onde se adicionam colunas diretamente. A sintaxedataset.Funcionario("int","Id");não corresponde a nenhum método padrão do ADO.NET. - (B) Incorreta:
AddFieldnão é um método padrão da classeDataTablepara adicionar colunas. A forma correta envolve a coleçãoColumns. - (C) Incorreta:
dataseté umDataSet, não o objeto onde se adicionam colunas de uma tabela específica. Além disso,AddColumnnão é um método padrão doDataSetpara essa finalidade. - (D) Correta: A lacuna
Iestá dentro do métodoCreateFuncionarioTable(), que retorna umDataTable. Como as opções não usam a sintaxe padrão (Funcionario.Columns.Add(...)), a alternativa D sugere o uso de um método auxiliar (AddNewColumn) que encapsula a lógica de adicionar uma coluna a umDataTable. Esta é uma prática comum em aplicações para simplificar o código. O métodoAddNewColumnrecebe oDataTable(Funcionario), o tipo de dado como string ("System.Int32", que representa um inteiro de 32 bits) e o nome da coluna ("Id"), sendo a opção mais plausível para preencher a lacuna, assumindo a existência desse método auxiliar. - (E) Incorreta:
AddColumnnão é um método padrão do ADO.NET para essa finalidade. Além disso,System.Integer64é um nome de tipo incorreto; o correto seriaSystem.Int64. A armadilha aqui é a tentativa de usar um nome de tipo que parece correto, mas está sintaticamente errado, e o métodoAddColumnnão é padrão.
Fonte: FCC SEFAZ-SC 2018 - Conhecimentos Específicos (P3) Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.