Condividi tramite


SqlDataReader.Read Metodo

Definizione

Sposta l'oggetto SqlDataReader al record successivo.

public:
 override bool Read();
public:
 virtual bool Read();
public override bool Read ();
public bool Read ();
override this.Read : unit -> bool
abstract member Read : unit -> bool
override this.Read : unit -> bool
Public Overrides Function Read () As Boolean
Public Function Read () As Boolean

Restituisce

true se sono presenti altre righe. In caso contrario, false.

Implementazioni

Eccezioni

SQL Server ha restituito un errore durante l'esecuzione del testo del comando.

Esempio

Nell'esempio seguente viene creato un SqlConnectionoggetto , un SqlCommandoggetto e un oggetto SqlDataReader. L'esempio legge i dati, scrivendoli nella finestra della console. Il codice chiude quindi .SqlDataReader L'oggetto SqlConnection viene chiuso automaticamente alla fine del blocco di using codice.

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 dataRecord)
{
    Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
Private Sub ReadOrderData(ByVal connectionString As String)
    Dim queryString As String = _
        "SELECT OrderID, CustomerID FROM dbo.Orders;"

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()

        Dim reader As SqlDataReader = command.ExecuteReader()

        ' Call Read before accessing data.
        While reader.Read()
            ReadSingleRow(CType(reader, IDataRecord))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub

Private Sub ReadSingleRow(ByVal record As IDataRecord)
   Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))
End Sub

Commenti

La posizione predefinita di SqlDataReader è prima del primo record. Pertanto, è necessario chiamare Read per iniziare ad accedere a tutti i dati.

Solo uno SqlDataReader per ogni associato SqlConnection può essere aperto alla volta e qualsiasi tentativo di apertura di un altro avrà esito negativo fino a quando il primo non viene chiuso. Analogamente, mentre viene usato , l'oggetto SqlDataReader associato è occupato fino a SqlConnection quando non si chiama Close.

Si applica a

Vedi anche