Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
be quiet! debutta nel settore mouse da gaming con Dark Perk Ergo e Dark Perk Sym: due modelli gemelli per specifiche, con polling rate di 8.000 Hz anche in wireless, sensore PixArt PAW3950 da 32.000 DPI e autonomia dichiarata fino a 110 ore. Nel test, a 8.000 Hz si arriva a circa 30 ore reali, con ricarica completa in un'ora e mezza
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-09-2012, 00: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 18-09-2012, 00: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 07:17.
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2012, 11: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 11:40.
Kralizek è offline   Rispondi citando il messaggio o parte di esso
Old 22-09-2012, 07: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, 21: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, 11: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


Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Il caricatore definitivo a meno di 30€: ...
Non chiamatelo vecchio: il TV LG 65"...
3 TV da 55" crollano di prezzo: c'&...
Segway Navimow presenta la nuova gamma d...
Xiaomi SU7 Pro: l'ispezione dopo 265.000...
Nimbus Innovation Awards 2026: le miglio...
SSD Samsung contraffatto, ma Windows e C...
Enrique Lores, CEO e presidente di HP, l...
SoftBank e Intel preparano la 'memoria d...
Il blocco dei porno per i minori è...
AMD: i nuovi processori Zen 6 saranno (i...
Ancora aumenti per le schede video Radeo...
Sonos presenta Amp Multi a ISE 2026: il ...
Una funzione esclusiva dei Pixel potrebb...
La Cina vieta ufficialmente le maniglie ...
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: 08:13.


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