Questão de Banco de Dados — Geral — Avança SP 2024
- Código
- qa630803
- Banca
- Avança SP
- Órgão
- Pref Caçapava SP
- Ano
- 2024
- Cargo
- Tec (Pref Caçapava (SP))
- ASqlConnection
- BSqlAsyncConnection
- CDatabaseConnection
- DAsyncSQLConnector
- ESqlCommand
GabaritoA — SqlConnection
Gabarito: letra A. A classe SqlConnection do namespace System.Data.SqlClient (ou Microsoft.Data.SqlClient) é a responsável por estabelecer e gerenciar a conexão com uma instância do Microsoft SQL Server, funcionando como a ponte entre a aplicação e o banco de dados — exatamente o que descreve o enunciado.
No framework .NET, o acesso a bancos de dados é feito por meio de um conjunto de classes que seguem o modelo de provedores ADO.NET. Cada banco de dados possui seu próprio provedor, e para o SQL Server a classe central é a SqlConnection. Ela encapsula a string de conexão, abre e fecha a conexão, e é a partir dela que se criam comandos (SqlCommand) e adaptadores (SqlDataAdapter) para executar consultas e manipular dados.
A SqlConnection é instanciada tipicamente com uma connection string que especifica o servidor, o banco de dados, credenciais e outras opções. O método Open() estabelece a conexão física com o SQL Server, e Close() a encerra. Sem ela, não é possível executar nenhuma operação no banco — é o primeiro passo em qualquer acesso a dados com ADO.NET.
As demais alternativas apresentam nomes que parecem plausíveis, mas não existem no .NET: SqlAsyncConnection, DatabaseConnection e AsyncSQLConnector são invenções. Já SqlCommand é uma classe real, mas com função diferente: representa um comando SQL (como SELECT, INSERT) a ser executado sobre uma conexão já estabelecida.
A pegadinha da banca está em oferecer nomes que soam como variações de SqlConnection (com "Async" ou "Connector") e também em incluir SqlCommand, que é uma classe legítima do ADO.NET, mas que não é a responsável pela conexão. O candidato que conhece a hierarquia das classes ADO.NET identifica rapidamente a correta.
A banca explora a confusão entre SqlConnection e SqlCommand. Lembre-se: a conexão é o primeiro passo — sem ela, nada acontece. O SqlCommand só existe depois que a conexão está aberta, para executar instruções SQL. Guarde a sequência: SqlConnection → SqlCommand → ExecuteReader()/ExecuteNonQuery().
A classe SqlConnection é exatamente a que fornece funcionalidades para estabelecer e gerenciar conexões com o Microsoft SQL Server. Ela é a ponte entre a aplicação e a instância do banco, permitindo abrir, fechar e gerenciar a conexão. É o ponto de partida de qualquer operação de banco de dados no ADO.NET.
SqlAsyncConnection não existe no .NET. A classe real é SqlConnection, e o suporte a operações assíncronas é feito por métodos como OpenAsync() e CloseAsync() da própria SqlConnection — não por uma classe separada com nome "Async".
DatabaseConnection é um nome genérico que não corresponde a nenhuma classe do .NET. O framework usa classes específicas por provedor, como SqlConnection para SQL Server, OracleConnection para Oracle, MySqlConnection para MySQL, etc.
AsyncSQLConnector não existe no .NET. O suporte a operações assíncronas é integrado à própria SqlConnection (via OpenAsync), e não há uma classe separada com esse nome.
SqlCommand é uma classe real do ADO.NET, mas sua função é representar um comando SQL (como SELECT, INSERT, UPDATE) a ser executado sobre uma conexão já estabelecida. Ela não gerencia a conexão em si — depende de uma SqlConnection para funcionar. A banca incluiu essa alternativa para testar se o candidato sabe diferenciar os papéis das classes.
Gabarito: letra A
Link permanente: /questoes/qa630803