Risultati da inserire in un repeater con Dataset che cicla in un for

martedì 04 novembre 2008 - 17.14

zseven Profilo | Senior Member

Forse il titolo non è molto chiaro, cerco dispiegarmi meglio che posso.
In pratica tramite questo codice faccio un ciclo ed ottengo delle query differenti:

For i = 0 To UBound(ArrayIdUtente) id_singolo = ArrayIdUtente(i) If id_singolo = Session("utente").ToString Then MySQL2 = "SELECT *FROM tab_bacheca WHERE ID_bacheca = " & ID_bacheca Response.Write(MySQL2 & "<br>") MyDA = New Data.OleDb.OleDbDataAdapter(MySQL2, Conn) MyDS = New DataSet MyDA.Fill(MyDS, "tab_bacheca") binda() End If Next

La Sub Binda è la seguente:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Però così facendo ottengo solo l'ultimo risultato proveniente dal ciclo FOR.
Come faccio a mostrare nel repeater tutte le query che arrivano dal ciclo?

Grazie a tutti

alx_81 Profilo | Guru

>Forse il titolo non è molto chiaro, cerco dispiegarmi meglio
>che posso.
>In pratica tramite questo codice faccio un ciclo ed ottengo delle
>query differenti:
>Come faccio a mostrare nel repeater tutte le query che arrivano
>dal ciclo?
Io cambierei approccio. Mi comporrei una stringa di ID_Bacheca, separata da virgola ad esempio, e poi la passerei ad una Stored Procedure scritta in MySQL.
Poi nella stored procedure creerei l'sql che ragiona su tutti gli ID (con una IN o tramite la creazione di una tabella temporanea contenente gli ID_Bacheca) e quindi una select che ti torna il datatable già completo di tutti i record che ti servono.

>Grazie a tutti
Di nulla!

--

Alessandro Alpi | SQL Server MVP

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

zseven Profilo | Senior Member

Ciao Alx,
grazie per il consiglio, non ho fatto proprio come hai detto, in quanto non so usare le stored, ma ho cmq utilizzato il suggerimento relativo alla clausola IN nella SQL ed ho messo la query esternamente al ciclo dopo aver riempito la variabile con gli ID.

Ti riporto il codice, così se magari trovi qualcosa di scorretto cerco di rimediare:
For i = 0 To UBound(ArrayIdUtente) id_singolo = ArrayIdUtente(i) If id_singolo = Session("utente").ToString Then If AllBacheca = "" Then AllBacheca = ID_bacheca Else AllBacheca = AllBacheca & "," & ID_bacheca End If End If Next Loop MySQL2 = "SELECT *FROM tab_bacheca WHERE ID_bacheca IN ( " & AllBacheca & ")" MyDA = New Data.OleDb.OleDbDataAdapter(MySQL2, Conn) myDS = New DataSet MyDA.Fill(myDS, "tab_bacheca") binda()

Grazie mille
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