Pular para o conteúdo principal

Questão de Banco de Dados — SQL Server — FCC 2019

Banco de DadosSQL Server
Código
fc057602
Banca
FCC
Órgão
TRF - 3ª REGIÃO
Ano
2019
Cargo
Analista Judiciário - Informática
Considere conn um objeto que contém uma conexão com um banco de dados SQL Server e que essa conexão está aberta e em condições ideais. Considere, ainda, que sql é uma variável do tipo string que contém a instrução INSERT abaixo.sql = "INSERT INTO cliente (nome, cpf) VALUES(®nome,@cpf) " ;Após o comando SqlCommand cmd = new SqlCommand(sql, conn) ; , que Cria um objeto do tipo SqlCommand com a instrução SQL e a conexão, para incluir o conteúdo do campo txtNome do formulário como parâmetro @nome na instrução INSERT utiliza-se o comando
  1. Acmd. SetParameter(txtNome.Text, "@nome") ;
  2. Bcmd.Parameters.Add(new SqlParameter("@nome", txtNome.Text));
  3. Ccmd.BindParam.Add(txtNome.Text, "@nome");
  4. Dcmd.Parameters.Append(new Parameter(txtNome.Text,"@nome"));
  5. Ecmd.BindParam(new BindParam(txtNome.Text, "@nome"));
Revelar gabarito e comentário

GabaritoB — cmd.Parameters.Add(new SqlParameter("@nome", txtNome.Text));

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SQL Server — Adicionando parâmetros a um SqlCommand

Gabarito: letra B. A forma correta de adicionar o parâmetro @nome a um comando SQL no ADO.NET é usando cmd.Parameters.Add(new SqlParameter("@nome", txtNome.Text)). A alternativa B é a única que utiliza a sintaxe real da classe SqlParameter e o método Add da coleção Parameters.

A banca testa o conhecimento da API do SqlCommand para adicionar parâmetros. O comando SqlCommand cmd = new SqlCommand(sql, conn); cria o objeto, mas a instrução SQL contém placeholders (@nome, @cpf). Para atribuir valores a esses placeholders, é necessário criar objetos SqlParameter e adicioná-los à coleção Parameters do comando.

Alternativa

Código apresentado

Classe/Método correto?

Sintaxe válida?

Resultado

A

cmd.SetParameter(txtNome.Text, "@nome")

SetParameter não existe

❌ Incorreta

B

cmd.Parameters.Add(new SqlParameter("@nome", txtNome.Text))

SqlParameter e Add

Gabarito

C

cmd.BindParam.Add(txtNome.Text, "@nome")

BindParam não existe

❌ Incorreta

D

cmd.Parameters.Append(new Parameter(...))

Parameter (genérico) e Append

❌ Incorreta

E

cmd.BindParam(new BindParam(...))

BindParam não existe

❌ Incorreta

Alternativa A — ❌ Incorreta

cmd.SetParameter(txtNome.Text, "@nome") — Não existe método SetParameter na classe SqlCommand. O método correto é Add na coleção Parameters.

Alternativa B — ✅ Correta ⟵ GABARITO

cmd.Parameters.Add(new SqlParameter("@nome", txtNome.Text)) — Exato: cria um SqlParameter com o nome @nome e o valor do texto, então o adiciona à coleção de parâmetros do comando.

Alternativa C — ❌ Incorreta

cmd.BindParam.Add(txtNome.Text, "@nome")BindParam não é uma propriedade ou método válido de SqlCommand. A coleção chama-se Parameters.

Alternativa D — ❌ Incorreta

cmd.Parameters.Append(new Parameter(txtNome.Text,"@nome")) — A classe Parameter não é a mesma SqlParameter; o namespace correto é System.Data.SqlClient e a classe é SqlParameter. Além disso, não existe método Append; usa-se Add.

Alternativa E — ❌ Incorreta

cmd.BindParam(new BindParam(txtNome.Text, "@nome"))BindParam não é um método nem classe do ADO.NET. A forma correta é a da alternativa B.

PEGA ESSA DICA!

Lembre-se: para adicionar parâmetros a um SqlCommand, a sintaxe em C# é sempre: comando.Parameters.Add(new SqlParameter("@parametro", valor)); ou comando.Parameters.AddWithValue("@parametro", valor); (esta última é um atalho para Add com SqlParameter).

Gabarito: letra B.

Link permanente: /questoes/fc057602