61 messaggi dal 02 luglio 2007
Salve...per la mia app web ho realizzato un datalayer con oggetti personalizzati e dataset. In un dataset ho due tabelle (di cui una derivata da un join) non legate tra loro. Questo dataset è gestito da un singolo oggetto che ha metodi collegati a stored procedures per entrambe le tabelle. Il mio problema è che se provo ad inserire in un datagrid i dati della tabella join attraverso un opportuno metodo get (usando la procedura guidata) mi ritrovo in uscita visualizzati i dati della prima tabella. Ho sbagliato qualcosa?
Grazie
Nota: la stored procedure funziona correttamente.
61 messaggi dal 02 luglio 2007
Ho provato a creare una relazione tra le tabelle.... va bene fino ad un certo punto. Vedo una ma non l'altra... è come se ci fosse una tabella master...
Ma le tabelle nel dataset devono avere per forza delle relazioni ?
141 messaggi dal 21 febbraio 2002
www.melisweb.eu
Che cosa "attacchi" al datagrid?
Il datatable o la singola datatable?

]aMelix[
-------------------------------
http://www.melisweb.eu/
http://www.puntodidomanda.com/
http://www.andiamo.it/
http://www.my-hotel.it/
http://www.cucinamore.com/
-------------------------------
MSN: amelix@msn.com
61 messaggi dal 02 luglio 2007
Al gridview "attacco" un datasourceobject alias mio oggetto business. Questo è collegato al dataset in questione...... poi seleziono il metodo per recuparare i dati dalla tabella join...... non specifico direttamente alcun datatable.
Finora con dataset aventi una sola tabella la cosa è andata a meraviglia.
Se servono altri dati chiedere pure.Grazie
Scusa ma mi sono perso...
se i DataTable nel tuo DataSet non sono in relazione, ma semplicemente il tuo DataSet e' un contenitore di due dt... come puoi pretendere che la tua grid visualizzi le due tabelle??

Ripercorriamo i Layer...

DAL -> popola un dataset con due recordset proveniente da un sp ovvero avrai un ds e due dt

BLL -> Ottine un ds dal DAL e restituisce lo stesso ds

FrontEnd -> ObjectDataSource chiama BLL e popola il grid con il ds

Se vuoi far visualizzare entrambe i dt in una sola grid... devi delegare la trasformazione ad esempio al BLL ovvero creare un dt che rappresenti entrambe le tavole. Se come dici non c'e' relazione tra i dati dei due dt originari, devi fare un merge.
61 messaggi dal 02 luglio 2007
Non è proprio così... voglio rappresentare solo la tabella (datateable) relativo alla tabella join, quindi non penso che sia necessaria una relazione.
Il BLL deve darmi solo quella tabella popolata dal DAl attraverso storedprocedure. Il problema è che mi fa vedere la tabella sbagliata.
So che è un pò complicato ma grazie
Se la sp contiene una join, la sp ti restiruisce uno e un solo recordset che passando attraverso i layer arrivera a bindare la tua grid

Se la sp ti restituisce dau recordset, non si tratta di una join, bensi' di una un doppio select

se invece nel tuo ds hai due table in join/relation based on a key la rappresentazione deve essere delegata ad grid/repeater basato sul concetto master/details ovvero attraverso gli appositi metodi del datarow ovvero GetChildRows

se vuoi prova a postare una parte della sp /dal/bll per farmi capire meglio il tuo scenario
61 messaggi dal 02 luglio 2007
Evidentemente non hai letto o non sono stato chiaro nei primi post. Riassumo :
un dataset-> due datatable: una table normale e una ricavata da un join ottenuto dalla prima tabella e da un'altra che non è in questo dataset.
la datatable tipo join è stata creata trascinando la stored proc.
le datatables nel dataset non sono legate da relazioni.
il problema è che se cerco di mettere la tabella join nel gridview vedo la prima.
Non riesco ad essere più chiaro... per miei motivi purtroppo non posso postare codice.
Grazie dell'interesse, ciao
Se non riesco a risolvere creerò un nuovo dataset contenente la table tipo join

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.