Contenuto query sql

mercoledì 14 giugno 2006 - 13.13

clark Profilo | Newbie

Salve,
io effettuo una query SQL dove richiedo vari campi che vengono poi trasmessi ad un repeater tramite DataBind, pressappoco in questo modo:

conn.Open();

read = query.ExecuteReader();

rptNotizia.DataSource = read;
rptNotizia.DataBind();

read.Close();

conn.Close();



come posso fare per salvare (e quindi poter lavorare con) il contenuto di 1 dei campi che ottengo dalla query?

alx_81 Profilo | Guru

Utilizzando il metodo che hai scritto crei un datareader. Infatti, per te, quell'oggetto read è il DataReader. Quest'ultimo è simile ad un recordset forwardonly, ovvero che può essere letto in avanti una sola volta. Di conseguenza, ti conviene utilizzare un Datatable, in modo da poterti spostare sulle righe in maniera dinamica.
fai così..

Ammettiamo che tu abbia già la tua connessione nell'oggetto conn e che hai importato il namespace System.Data
conn.open() 'crei il comando con dentro la tua query, relativo alla connessione conn Dim objCmd as new OledbCommand("SELECT * FROM TABELLA",conn) 'crei l'adapter per ottenere i dati in modalità disconnessa Dim objDA as new OledbDataAdapter(objCmd) 'crei un datatable vuoto Dim DT as new DataTable("prova") 'scrivi nel datatable il risultato della query col metodo Fill del dataadapter objDA.fill(DT) 'a questo punto hai il datatable popolato, se i dati ci sono if not DT is nothing andalso DT.rows.count > 0 then 'qui lavori sulle righe e sulle colonne con le sintassi DT.Rows(indicecolonna).Item("Campo1") end if

detto questo, quante righe torna la tua query? perchè se è una sola puoi usare DT.Rows(0).item("campo che ti serve")

ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

clark Profilo | Newbie

>Utilizzando il metodo che hai scritto crei un datareader. Infatti,
>per te, quell'oggetto read è il DataReader. Quest'ultimo è simile
>ad un recordset forwardonly, ovvero che può essere letto in avanti
>una sola volta. Di conseguenza, ti conviene utilizzare un Datatable,
>in modo da poterti spostare sulle righe in maniera dinamica.
>fai così..
>
>Ammettiamo che tu abbia già la tua connessione nell'oggetto conn
>e che hai importato il namespace System.Data
>
>conn.open()
>'crei il comando con dentro la tua query, relativo alla connessione
>conn
>Dim objCmd as new OledbCommand("SELECT * FROM TABELLA",conn)
>'crei l'adapter per ottenere i dati in modalità disconnessa
>Dim objDA as new OledbDataAdapter(objCmd)
>'crei un datatable vuoto
>Dim DT as new DataTable("prova")
>'scrivi nel datatable il risultato della query col metodo Fill
>del dataadapter
>objDA.fill(DT)
>'a questo punto hai il datatable popolato, se i dati ci sono
>if not DT is nothing andalso DT.rows.count > 0 then
>'qui lavori sulle righe e sulle colonne con le sintassi DT.Rows(indicecolonna).Item("Campo1")
>end if
>
>detto questo, quante righe torna la tua query? perchè se è una
>sola puoi usare DT.Rows(0).item("campo che ti serve")

La mia query ritorna parecchie righe, comunque ho risolto con DataTable e DataAdapter.
In pratica con un for che cicla per il numero di righe del DataTable, prendo, uno alla volta, il contenuto del campo che mi serve.

>
>ciao!
>Alx81 =)

Grazie per la dritta :)
Alla prossima
>
>http://blogs.dotnethell.it/suxstellino
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