SqlDataReader.Read 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.
Avança o SqlDataReader para o próximo registro.
public:
override bool Read();
public override bool Read ();
override this.Read : unit -> bool
Public Overrides Function Read () As Boolean
Retornos
true
se houver mais linhas; caso contrário, false
.
Implementações
Exceções
O SQL Server retornou um erro ao executar o texto do comando.
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))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
ReadSingleRow((IDataRecord)reader);
}
// Call Close when done reading.
reader.Close();
}
}
private static void ReadSingleRow(IDataRecord record)
{
Console.WriteLine(String.Format("{0}, {1}", record[0], record[1]));
}
}
Comentários
A posição padrão do SqlDataReader é antes do primeiro registro. Portanto, você deve chamar Read para começar a acessar quaisquer dados.
Somente um SqlDataReader
por associado SqlConnection pode estar aberto por vez, e qualquer tentativa de abrir outra falhará até que o primeiro seja fechado. Da mesma forma, enquanto o SqlDataReader
está sendo usado, o associado SqlConnection
está ocupado servindo-o até que você chame Close.