Ordini e Carrello: un piccolo aiuto con il Datalist

venerdì 10 settembre 2010 - 16.41
Tag Elenco Tags  C#  |  .NET 3.5  |  Windows 7  |  Visual Studio 2008  |  Access (.mdb)

dyd666 Profilo | Junior Member

Salve ragazzi

Vado subito a spiegarmi: ho due tabelle

Ordini -> CodOrdine; NomeUtente; CodProdotto; Quantità

Prodotti -> CodiceProdotto ; Artista ; Genere ecc.....

Vorrei visualizzare in una pagina ORDINI tutti gli ordini , per l'appunto , presenti all'interno della tabella "Ordini" , tramite un Datalist.
In che modalità però?
Come si può supporre , un utente può aver comprato , nello stesso ordine , uno o più prodotti , giusto?
Quindi avrò più righe all'interno di "Ordini" aventi in comune "CodOrdine".
Quando visualizzerò per gli Ordini nel Datalist avrò che , IN UNA SOLA RIGA dovrò visualizzare UN SOLO ORDINE , ovvero:

CodOrdine ; Nome Utente ; CodProdotto1 - Quantità 1; CodProdotto2 - Quantità2 ecc....

Se la mia tabella "Ordini" contiene quindi 20 "CodOrdine" diversi , avrò 20 righe nel mio datalist.
Questo non implica che esistano anche 20 righe soltanto nella tabella "Ordini" (lo stesso discorso di prima , un utente può avere più prodotti in uno stesso Ordine).

La domanda quindi è: è possibile fare questo?
Ovvero far si che una riga di un Datalist contenga non solo il record di "Ordini" ma anche i vari record di "Prodotti" correlati?

Grazie mille

Saluti

alx_81 Profilo | Guru

>Salve ragazzi
ciao

>La domanda quindi è: è possibile fare questo?
>Ovvero far si che una riga di un Datalist contenga non solo il
>record di "Ordini" ma anche i vari record di "Prodotti" correlati?
allora, il fatto che tu voglia i prodotti su riga uno a fianco all'altro ti impone una gestione manuale dell'orizzontalizzazione dei dati che avresti in forma normalizzata. Di conseguenza, potresti scegliere due strade (quelle che mi vengono in mente sul momento):
1) fare due controlli nidificati, ovvero un datalist che al suo interno ha un repeater che si collega alla chiave codOrdine del primo per ricavare l'elenco dei record da ripetere in orizzontale
2) fare un datalist che ha come sorgente una query che mette in orizzontale i dati già sul database
Il primo è più elegante, ma ti lega sulle eventuali modifiche che vuoi prevedere col tuo datalist.
Il secondo è più semplice da gestire lato applicazione, ma la query (che deve effettuare la trasposizione di righe in colonne) potrebbe veramente diventare pesante. Prova a seguire la prima, almeno in prima istanza.

>Grazie mille
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

dyd666 Profilo | Junior Member

Eccomi.
Allora , propenderei per la prima opzione , con un repeater nidificato nel DataList quindi.
Ho provato a fare in questo modo:

Un datalist che attinge dalla tabella Ordini , caricando tutti i suoi record , infilando poi un Repeater.
A questo punto non so come collegare il Repeater al DataList però...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5