Impossibile Generare Colonne Automatiche con DataGrid

mercoledì 11 marzo 2009 - 12.02

ysdemarc Profilo | Expert

Tra due datatable ottenuti da due select sql differenti mi genero un datatable di output che contiene i dati dei due datatable (secondo un'eleaborazione ben precisa devo alternare le righe mantenendo l'ordine imposto nella select)

quindi utilizzo quindi facico una cosa del genere:
DataTable dt = new DataTable("TableResultWorking");
//.... varie elaborazione.. dove dr1 è il DataRow del primo datatable e dr2 il datarow del secondo datatable
dt.ImportRow(dr1);
dt.ImportRow(dr2);
dt.AcceptChanges();
DataGrid1.DataSource = dt;
DataGrid1.DataMember = "TableResultWorking";
DataGrid1.DataBind();

a questo punto mi esce fuori quest'errore non appena fa il DataBind():

Il DataGrid con ID 'DataGrid1' non può generare automaticamente alcuna colonna dall'origine dati selezionata.
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

Dettagli eccezione: System.Web.HttpException: Il DataGrid con ID 'DataGrid1' non può generare automaticamente alcuna colonna dall'origine dati selezionata.

Analisi dello stack:


[HttpException (0x80004005): Il DataGrid con ID 'DataGrid1' non può generare automaticamente alcuna colonna dall'origine dati selezionata.]
System.Web.UI.WebControls.DataGrid.CreateAutoGeneratedColumns(PagedDataSource dataSource)
System.Web.UI.WebControls.DataGrid.CreateColumnSet(PagedDataSource dataSource, Boolean useDataSource)
System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource)
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)
System.Web.UI.WebControls.BaseDataList.DataBind()
Report.Result.AperturaPagina(Object sender, EventArgs e) in c:\inetpub\wwwroot\report\result.aspx.cs:63
Report.Result.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\report\result.aspx.cs:28
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()


Ho pensato potesse essere qualcosa impostato male nel controllo, ma se gli passo un datatable qualsiasi ottenuto da una select sql non ho problemi.

Ho cercato di creare le colonne nel dataGrid in fase di esecuzione, ma non so come associare ad ogni dataGriDColumn la colonna del datatable...


mi aiutate?

--------------------------
OK RISOLTO
--------------------------

in pratica l'errore me lo dava sia se cinserivi i DataColumnso meno..

così ho risolto prima di fare la ImportRow

for (int i=0; i < dt1.Columns.Count; i++)
{
DataColumn dc = dt1.Columns[i];
dt.Columns.Add(dc.ColumnName, dc.DataType);
}

precedente mente avevo sbagliato poichè al posto di dc.DataType avevo messo dc.GetType() ... lo so..errore di distrazione..

ciao a tutti
Vincenzo
Programmatore sbilenco
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5