Galera, bom dia.
Tenho três duvidas sobre o trecho de código abaixo:
1 - Como esta sendo utilizado "using", é necessário executar um connection.Close() após ler os dados? Ou a mesma é fechada automaticamente após o bloco using terminar?
2 - Como não é executado reader.Close() após ler os dados, a conexão com o banco fica aberta mesmo utilizando o using?
3 - Como não foi executado o reader.Close(), o objeto reader irá existir na memória até o Garbage Collector executar ou a conexão sempre ficará aberta mesmo após o executar o Garbage Collector?
Obrigado.
using (SqlConnection connection = new SqlConnection(connectionString))
{
String queryString = "select nome from produtos";
SqlCommand command = new SqlCommand(queryString, connection);
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("Produto: {0}", reader[0]);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}