View Full Version : [.Net]Conversione Ilist o List<> in DataSet
RaouL_BennetH
13-10-2009, 10:05
Ciao a tutti :)
Avrei bisogno del vostro aiuto per convertire o popolare un dataset da una lista.
Questo perchè lo strumento di generazione report a disposizione, prende in pasto solo dataset o datatable.
Avreste qualche indicazione da darmi ?
Grazie mille :)
RaouL.
Kralizek
13-10-2009, 12:10
potresti serializzare la lista in xml e leggere l'xml dal dataset...
Avrei bisogno del vostro aiuto per convertire o popolare un dataset da una lista.
Un DataSet lo puoi creare da zero e popolare riga per riga in modalità totalmente disconnessa. Non è assolutamente necessario partire da una base dati. Ad esempio vedi qui :
http://www.hwupgrade.it/forum/showthread.php?t=2023759
[ mio post #11 ].
Comunque, di metodi ce ne sono diversi. Dai un'occhiata anche qui :
http://www.codeproject.com/KB/vb/List2DataSet.aspx
RaouL_BennetH
13-10-2009, 13:12
Grazie per la risposta innanzitutto :)
Non ho ancora provato la tua soluzione, ma nel frattempo sono arrivato a questo:
public class ReportUtil
{
private IList<MyJobs> jobs;
private DataSet reportDs;
public IList<MyJobs> GetJobs()
{
using(ISession session = SessionManager.OpenSession())
{
jobs = session.CreateCriteria(typeof(MyJobs))
.List<MyJobs>();
return jobsM
}
}
public DataSet ConvertList(IList<MyJobs> jobs)
{
DataTable dt = new DataTable();
dt.Columns.Add("le varie colonne....");
foreach(MyJobs j in jobs)
{
if( j != null)
{
DataRow r = dt.NewRow();
r["bla"] = j.Campo1;
//etc...
dt.Rows.Add(r);
}
}
reportDs = new DataSet();
reportDs.Tables.Add(dt);
return reportDs;
}
}
Einstein
13-10-2009, 20:16
Un consiglio, visto che usi NHibernate.
Un OR/M serve per la persistenza del domain model, e la reportistica è uno di quei casi in cui usare il domain model non è conveniente, proprio perché hai bisogno di una vista "appiattita" del tuo grafo.
Il report, secondo me, è proprio quel caso in cui una stored procedure fatta come si deve ti risolve il problema: veloce e "tagliata" sul report che devi stampare.
Poi per tutto il resto c'è l'O/RM... ;-)
Ciao
RaouL_BennetH
14-10-2009, 09:10
Un consiglio, visto che usi NHibernate.
Un OR/M serve per la persistenza del domain model, e la reportistica è uno di quei casi in cui usare il domain model non è conveniente, proprio perché hai bisogno di una vista "appiattita" del tuo grafo.
Il report, secondo me, è proprio quel caso in cui una stored procedure fatta come si deve ti risolve il problema: veloce e "tagliata" sul report che devi stampare.
Poi per tutto il resto c'è l'O/RM... ;-)
Ciao
Ciao :)
Leggo solo ora il tuo messaggio ma è la stessa conclusione alla quale sono giunto ieri sera (pensando come al solito di essere un buono a nulla!)
La soluzione che ho adottato è stata semplicemente questa:
Ho creato una libreria a parte per i report, utilizzando dei business object per i dati. Questi rappresentano delle tabelle popolate mediante stored procedure.
L'unico grattacapo che sto avendo adesso è capire come funziona il linguaggio di scripting presente sul reportviewer, che mi serve per delle formattazioni particolari....
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.