Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Snapdragon Soung Gen 2 è la piattaforma Qualcomm per i dispositivi audio sempre più integrati nel mondo dell'intelligenza artificiale: al prorpio interno tanta potenza elaborativa per gestire al meglio le necessità d'uso dell'agentic AI
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
In occasione del proprio Snapdragon Summit Qualcomm annuncia i due nuovi chip per dispositivi mobile di fascia alta che entreranno nel mercato nel corso del 2027: tanta potenza a disposizione per elaborazioni di intelligenza artificiale sempre più complesse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-09-2012, 23:43   #1
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
[.net]Databinding->Datagridview->GroupBy

salve

ho la tipica situazione in cui:

Codice:
private void BindGrid(int objID)
{
    BindingSource bs = new BindingSource();
    bs.DataSource = myView.GetDetail(objID);
    myGrid.DataSource = bs;
} 

private void SomeWhereInTheBlueCode()
{
   BindGrid(11);
}
e ottengo ovviamente i dati correttamente sulla griglia...

Ora, avrei bisogno di fare in modo che in base ad un'azione da parte dell'utente, a questa griglia io possa aggiungere dei dati e raggrupparli, cioè:

se l'utente aggiunge "caramella rossa"
e nella griglia già è presente un'articolo "caramella rossa"
anzichè aggiungere una riga me ne sommi le quantità, ovvero:

caramella rossa -> 2

che mi aumenti quindi, soltanto le quantità.

E questa sarebbe la mia prima vista....

Successivamente dovrei poi essere in grado anche invece di "separarle" e quindi di vedere per ciascun dato, la singola quantità.

Per la singola quantità ovviamente non ho problemi.

Sono sempre su EF e ho libertà di scelta fra linq to sql e linq to entity.

Grasiiasisiaisiiaassse !!
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2012, 23:18   #2
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Dopo un pò di arzigogolamenti ed un aiuto da msdn sono giunto qui:

Codice:
public IQueryable ViewArticoliGrouped(int orderID)
        {
            var result = from order in context.Orders
                         join sellers in context.Sellers on order.id_order equals sellers.orderID
                         join articles in context.Articles on order.id_order equals articles.orderID
                         where order.id_order == orderID
                         group articles by articles.ArticoliTop.descrizione into TEST_GROUP
                         let unitPrice = TEST_GROUP.FirstOrDefault().prezzo
                         let qty = TEST_GROUP.Sum(s => s.quantita)
                         let priority = TEST_GROUP.FirstOrDefault().portata
                         let send = TEST_GROUP.FirstOrDefault().inviata
                         let idr = TEST.FirstOrDefault().id_articolo
                         select new
                         {
                             seller = TEST_GROUP.FirstOrDefault().Orders.Sellers.FirstOrDefault().denominazione,
                             prodotto = TEST_GROUP.Key,
                             prezzo = unitPrice * qty,
                             quantity = qty,
                             priority = priority,
                             inviato = send,
                             idr = idr
                         };
            return result;
        }
Avrei due domande:

1) è lentissima come mai ?

2) volendo 'tradurla' in linq to entity, mi dareste una mano ?

Raoul....
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek

Ultima modifica di RaouL_BennetH : 22-09-2012 alle 06:17.
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2012, 10:35   #3
Kralizek
Senior Member
 
L'Avatar di Kralizek
 
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
il problema sono tutti quei FirstOrDefault()

Codice:
seller = TEST_GROUP.FirstOrDefault().Orders.Sellers.FirstOrDefault().denominazione
per qualcosa del genere una volta ho cancellato l'intero metodo ad un tirocinante e gliel'ho fatto riscrivere. (credo che il tirocinante ha pensato di denunciarmi per mobbing, questi svedesi!)

invece di fare una singola query L2Sql, perché non fai diverse query, metti il risultato in collezioni che ti possono aiutare e poi combini il tutto in L2Objects?

se proprio non riesci a decomporre efficientemente la query, prova ad aiutarti con delle view fatte ad hoc sul database. per quanto lo si voglia far credere, utilizzarle in un ORM non é una bestemmia l'importante é non provare a scriverci dentro *


* in realtá con il giusto set di trigger puoi scrivere anche in una view

Ultima modifica di Kralizek : 20-09-2012 alle 10:40.
Kralizek è offline   Rispondi citando il messaggio o parte di esso
Old 22-09-2012, 06:17   #4
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da Kralizek Guarda i messaggi
il problema sono tutti quei FirstOrDefault()

Codice:
seller = TEST_GROUP.FirstOrDefault().Orders.Sellers.FirstOrDefault().denominazione
per qualcosa del genere una volta ho cancellato l'intero metodo ad un tirocinante e gliel'ho fatto riscrivere. (credo che il tirocinante ha pensato di denunciarmi per mobbing, questi svedesi!)

invece di fare una singola query L2Sql, perché non fai diverse query, metti il risultato in collezioni che ti possono aiutare e poi combini il tutto in L2Objects?

se proprio non riesci a decomporre efficientemente la query, prova ad aiutarti con delle view fatte ad hoc sul database. per quanto lo si voglia far credere, utilizzarle in un ORM non é una bestemmia l'importante é non provare a scriverci dentro *


* in realtá con il giusto set di trigger puoi scrivere anche in una view
Ok, provo a frammentare allora !

Per quanto riguarda le view, a me sembrava la via più semplice ma non posso
agire sul database e ad una piccola richiesta da parte mia hanno storto il naso.

Mille grazie
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 22-09-2012, 20:46   #5
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Allora... Ho provato a riprodurmi su un db in locale le tabelle e crearmi una vista.

E' tremendamente più veloce.

Ad ogni modo ho comunque due problemi:

1) Non potrò mai usarla perchè non ne ho l'autorizzazione

2) Ci sono dei dati che vorrei capire come visualizzare:

Codice:
Tabella Ordini:
id_ordine pk
altreInfoPocoUtili...

TabellaAssegnazioneVenditori
id_assignment pk
regioneID (fk -> pk tabella regioni (id_regione))
ordineID (fk -> pk tabella ordini (id_ordine))

TabellaArticoliVenduti
id_vendita pk
articoloID (fk -> pk tabella articoli(id_articolo))
ordineID (fk -> pk tabella ordini(id_ordine))
qta (intero)
prezzo(decimal)
priority (intero)
evaso (bit)
Nella view non riesco ad inserire:
La regione o l'id della stessa (dato che non dev'essere raggruppata)
la priorità (anch'essa non ha un raggruppamento)
e lo stato dell'articolo (se è stato evaso o meno)

In pratica:
Codice:
SELECT     dbo.ArticoliVenduti.articoloID, dbo.Ordini.id_ordine AS pID, SUM(dbo.ArticoliVenduti.quantita) AS Qta, 
                      SUM(dbo.ArticoliVenduti.prezzo * dbo.ArticoliVenduti.quantita) AS price
FROM         dbo.ArticoliVenduti INNER JOIN
                      dbo.Ordini ON dbo.ArticoliVenduti.orderID = dbo.Ordini.id_ordine INNER JOIN
                      dbo.AssegnazioneVenditori ON dbo.Ordini.id_ordine = dbo.AssegnazioneVenditori.ordineID
GROUP BY dbo.Ordini.id_ordine, dbo.ArticoliVenduti.articoloID
Ciò che mi restituisce è corretto ma è incompleto..
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2012, 10:02   #6
DarkSiDE
Senior Member
 
L'Avatar di DarkSiDE
 
Iscritto dal: Dec 2001
Città: Lecce
Messaggi: 3936
potrebbe sfuggirmi qualcosa, ma non capisco il problema

la query è corretta, devi solo aggiungere regione, stato e priorità e raggruppare cmq per gli stessi poichè non sono usati dalla funzione di aggregazione.

Diversamente, non ho capito cosa vuoi ottenere
__________________
Non farò mai più affari con khalhell, 4HwGenXX.
DarkSiDE è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Opera: la VPN gratuita si accende in aut...
Giochi capaci di costruirsi in tempo rea...
Giochi DX11 su Intel Arc e Proton: le ot...
Bentley Torcal ufficiale: 876cv e ricari...
Counter-Strike 2: con poche modifiche, V...
Silent Hill potrebbe tornare al cinema c...
L'integrazione di ChatGPT su Siri è stat...
ASML: 'Non vendiamo assolutamente nulla ...
Anthropic limita Claude Opus 5.5 nello s...
Microsoft 365, l'Antitrust respinge le p...
SAP NOW AI Tour Milan: una giornata con ...
Quake Champions dice addio al free-to-pl...
Anker AeroClip 2, li indossi e dopo un p...
Notebook ASUS da gaming per il Back to S...
Auto elettriche UE al 21,7%: sorpasso si...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:40.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v