Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
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 REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
iPhone 18 Pro disponibile su Amazon a 1....
ECOVACS T90 OMNI a 439€ e T90 MAX OMNI a...
Questa Proscenic è la scopa elett...
Microsoft Defender: falso allarme sull'a...
Aerei in volo e truppe pronte all'assalt...
Usano Claude per hackerare OpenAI: ricer...
RatHat: il nuovo malware Android usa il ...
Domanda di petrolio in calo di 2,5 milio...
Il meglio delle offerte weekend Amazon a...
Dopo oltre 100 anni di tentativi, l'IA d...
Speciale robot aspirapolvere in offerta ...
L'IA sta cancellando i lavori junior? Il...
Debutta Chery Italia: non più sol...
Addio ai dischi? Xbox ci aveva già...
Speciale TV Amazon: 4 modelli, da 139€ f...
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: 11:20.


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