Riempire dataset con array?

venerdì 23 giugno 2006 - 11.38

tyson69 Profilo | Newbie

Ciao a tutti vorrei sapere se secondo voi è possibile riempire un dataset da una fonte dati tipo un array o ev un datatable....

Grazie in anticipo!!

tyson69 Profilo | Newbie

ok non è un problema riempire un datatable con l'array ...

dataSet.Tables.Add(caricadatatabledatatable()) 'caricadatatabledatatable è una funzione che mi crea il DT e lo popola con l'array

se posso ancora approfittarne ora nel dataset dovrei farci entrare un dataadapter e quindi relazionare le due tabelle....

dovrebbe essere possibile... giusto?

PS Grazie!

tyson69 Profilo | Newbie

...mi spiego meglio...
ho la mia datalist(dlstProdotti) che pesca da una tabella prodotti, nel momento in cui devo modificare il record e vado in edit dovrei popolare una dropdown(DdlImmagini) con tutti i file di una dir e selezionare quello corrispondente nella tabella prodotti.

Pertanto io pensavo di inserire in 1 array tutti i file della dir e quindi tramite una datatable inserirli nel dataset:

Dim mydatatable As New DataTable("ParentTable")
Dim mydatacolumn As New DataColumn
Dim mydatarow As DataRow
mydatacolumn.DataType = System.Type.GetType("System.String")
mydatacolumn.ColumnName = "ID"
mydatatable.Columns.Add(mydatacolumn)
Dim dir As DirectoryInfo = New DirectoryInfo(Server.MapPath("\ImgProducts\"))
For Each localfile As FileInfo In dir.GetFiles
mydatarow = mydatatable.NewRow
mydatarow("ID") = localfile.Name
mydatatable.Rows.Add(mydatarow)
Next
Dim dataSet As New dataSet
dataSet.Tables.Add(mydatatable)

e fin qui dovremmo essere ok...
quindi pesco i dati nella tab prodotti e con il dataadapter li inserisco nel dataset:

Dim objConn As MySqlConnection = New MySqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
strSql = "Select * from T_prodotti " & strCategoryFilter
Dim dataAdapter As New MySqlDataAdapter(strSql, objConn)
dataAdapter.Fill(dataSet, "T_prodotti")

ora il mio dataset dovrebbe contenere 2 tabelle che tento di relazionare cosi:

dataSet.Relations.Add("myrelation", dataSet.Tables("ParentTable").Columns("ID"), dataSet.Tables("T_prodotti").Columns("immagine_prodotto"))
dlstProdotti.DataSource = dataSet.Tables("T_prodotti").DefaultView


e quindi:

dlstProdotti.DataSource = dataSet
dlstProdotti.DataBind()

ma mi solleva un'eccezione
System.Web.HttpException: DataBinder.Eval: 'System.Data.DataRowView' non contiene una proprietà con nome Id_prodotto

spero di essere stato più chiaro, ciao!

tyson69 Profilo | Newbie

Ciao Coach e buona settimana!

Il campo Id_prodotto esiste eccome, ho cambiato la query con
strSql = "Select id_prodotto, nome_prodotto, prezzo_prodotto, immagine_prodotto, descrizione_prodotto from T_prodotti " & strCategoryFilter

e non si inalbera affatto.... ti posto il codice del mio datalist:

<asp:datalist id=dlstProdotti runat="Server" onupdatecommand="dlstProdotti_UpdateCommand" ondeletecommand="dlstProdotti_DeleteCommand" oncancelcommand="dlstProdotti_CancelCommand" oneditcommand="dlstProdotti_EditCommand" width="500px" edititemstyle-backcolor="lightgrey" cellpadding="10" repeatdirection="Horizontal" repeatcolumns="3" datakeyfield="Id_prodotto">

<itemtemplate> <strong><%# Container.DataItem( "nome_prodotto" )%></strong> <br/>
<%# Container.DataItem( "prezzo_prodotto" )%> <br/>
<%# Container.DataItem( "immagine_prodotto" )%> <br/>
<%# Container.DataItem( "descrizione_prodotto" )%> <br/>
<asp:linkbutton text="Modifica!" commandname="edit" runat="Server" id="Linkbutton1"/><br/>
</itemtemplate>

<edititemtemplate>
Nome: <asp:textbox id="txtNomeProdotto" text='<%# Container.DataItem( "nome_prodotto" )%>' runat="Server" class="middle"/><br/>
Immagine: <asp:dropdownlist id="DdlImmagini" runat="server" datatextfield="id" datavaluefield="id" /><br/>
Prezzo: <asp:textbox id="Txtprezzoprodotto" text='<%# Container.DataItem( "prezzo_prodotto" )%>' runat="Server" class="middle"/><br/>
Descrizione: <asp:textbox id="Txtdecrizioneprodotto" text='<%# Container.DataItem( "descrizione_prodotto" )%>' runat="Server" class="middle"/><br/>
<asp:linkbutton text="Aggiorna!" commandname="update" runat="Server" id="Linkbutton2"/>
<asp:linkbutton text="Elimina!" commandname="delete" runat="Server" id="Linkbutton3"/>
<asp:linkbutton text="Cancella!" commandname="cancel" runat="Server" id="Linkbutton4"/>
</edititemtemplate>
</asp:datalist>

...a me sembra tutto ok...ciao!

tyson69 Profilo | Newbie

no ho cambiato semplicemente per farti vedere che l'id_prodotto c'era ma l'eccezzione è la stessa di cui sopra!.....sigh

tyson69 Profilo | Newbie

>e non si inalbera affatto.... ti posto il codice del mio datalist:

ehm intendevo dire che se il campo id_prodotto non fosse esistito mi avrebbe restituito 1 altro tipo di errore...

>Controlla bene il mapping campi ritornati dalla query da quelli che metti nel datalist

il mapping come puoi vedere è ok ed il datalist ha datakeyfield="Id_prodotto"


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