SqlDataReader.Close Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fecha o objeto SqlDataReader.
public:
override void Close();
public override void Close ();
override this.Close : unit -> unit
Public Overrides Sub Close ()
Implementações
Exemplos
O exemplo a seguir cria um SqlConnection, um SqlCommande um SqlDataReader. O exemplo lê os dados, gravando-os na janela do console. Em seguida, o código fecha o SqlDataReader. O SqlConnection é fechado automaticamente no final do using
bloco de código.
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
ReadOrderData(str);
}
private static void ReadOrderData(string connectionString)
{
string queryString =
"SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command =
new SqlCommand(queryString, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
// Call Read before accessing data.
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",
reader[0], reader[1]));
}
// Call Close when done reading.
reader.Close();
}
}
}
}
}
Comentários
Você deve garantir que o Close método seja chamado quando você estiver usando o SqlDataReader antes de usar o associado SqlConnection para qualquer outra finalidade. O Close
método pode ser chamado diretamente ou por meio do Dispose
método , descartando diretamente ou no contexto do bloco de instrução using .
O Close
método preenche os valores para parâmetros de saída, valores retornados e RecordsAffected
no SqlDataReader consumindo quaisquer resultados pendentes. Essa pode ser uma operação longa dependendo da quantidade de dados a serem consumidos. Se os valores de saída, os valores retornados e RecordsAffected
não forem importantes para o aplicativo, o tempo para fechar poderá ser reduzido chamando o Cancel método do objeto associado SqlCommand antes que o Close
método seja chamado.
Cuidado
Não chame Close
nem Dispose
em um Connection, um DataReader ou qualquer outro objeto gerenciado no Finalize
método de sua classe. Em um finalizador, você só deve liberar recursos não gerenciados que sua classe possui diretamente. Se a classe não tiver nenhum recurso não gerenciado, não inclua um método Finalize
em sua definição de classe. Para obter mais informações, confira Coleta de lixo.