Guardando le presentazioni su ADO.NET 2.0, si nota che l'attenzione è quasi esclusivamente accentrata sul DataSet e la DataTable, in pratica il mondo disconnesso.

Ci sono anche delle belle novità per il mondo connesso: SqlDataReader. La prima, per me fondamentale, è la possibilità di avere uno o più data reader aperti sulla stessa connessione. Avete capito bene, potete scrivere qualcosa di questo genere:

SqlConnection connection = new SqlConnection(_connectionString);

try
{
    SqlCommand orders = new SqlCommand(
        "SELECT OrderID, CustomerID, OrderDate FROM Orders",
        connection);

    SqlCommand details = new SqlCommand(
        "SELECT UnitPrice, Quantity FROM [Order Details] WHERE OrderID = @OrderID",
        connection);
    details.Parameters.Add("@OrderID", SqlDbType.Int);

    connection.Open();

    SqlDataReader orderReader = orders.ExecuteReader();
    while (orderReader.Read())
    {
        Console.WriteLine("Order ID {0} - Date {1}", orderReader[0], orderReader[2]);

        details.Parameters["@OrderID"].Value = orderReader[0];
        SqlDataReader detailReader = details.ExecuteReader();
        while (detailReader.Read())
        {
            Console.WriteLine("\tUnit price {0}\tQuantity {1}",
                detailReader[0], detailReader[1]);
        }
        detailReader.Close();
    }
    orderReader.Close();
}
catch (Exception ex)
{
    Console.WriteLine(ex);
}
finally
{
    if (connection != null && connection.State == ConnectionState.Open)
        connection.Close();
}

Nella versione 1.1 del framework questo non è possibile e si deve optare per l'uso di un DataSet con la relazione oppure creare due connessioni (meglio la prima via!).  

Un'altra caretteristica interessante è la paginazione (attenzione, non siamo sicuri che l'avremo ancora nel futuro, l'ambiente dichiara il metodo obsoleto!):

SqlDataReader orderReader = orders.ExecutePageReader(CommandBehavior.Default, 10, 5);

Questo metodo mi restituisce 5 records partendo dal decimo. Ci sono altre novità (forse un pò meno importanti), ma le vedremo un'altra volta, forse ;-)