SqlDataReader vs SqlDataAdapter: ¿cuál tiene el mejor rendimiento para devolver un DataTable?

Quiero saber cuál tiene el mejor rendimiento para devolver unDataTable. Aquí porSqlDataReader yo sueloDataTable.Load(dr)

UtilizandoSqlDataReader:

public static DataTable populateUsingDataReader(string myQuery)
{
    DataTable dt = new DataTable();
    using (SqlConnection con = new SqlConnection(constring))
    {
        SqlCommand cmd = new SqlCommand(myQuery, con);
        con.Open();
        SqlDataReader dr = null;
        dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        if (dr.HasRows)
        {
            dt.Load(dr);
        }
        return dt;
    }
}

utilizandoSqlDataAdapter:

public DataTable populateUsingDataAdapter(string myQuery)
{
    SqlDataAdapter dap = new SqlDataAdapter(myQuery,cn);
    DataSet ds = new DataSet();
    dap.Fill(ds);
    return ds.Tables[0];
}

Respuestas a la pregunta(5)

Su respuesta a la pregunta