DataReader direttamente in associazioen con Datasource dei controlli

lunedì 24 settembre 2007 - 16.54

ravalon Profilo | Expert

Salve a tutti...volevo provare a fare delle associazioni di dati direttamente sfruttando la proprietà DataSource dei controllo come la DataList ad esempio, ma a quanto pare non riesco a visualizzare un bel nulla

Ho usato questo codice
(Conn.connetti richiama la connessione al DB ed è un oggetto di tipo Odbc.OdbcConnection)


Dim objCommand As New System.Data.Odbc.OdbcCommand(CStr("Select * from utenti"), Conn.Connetti)

DataList1.DataSource = objCommand.ExecuteReader()
DataList1.DataBind()

In questo modo non visualizzo niente

se invece leggo i dati su un DataReader (che sarebbe Conn.Dati)

Conn.Dati = objCommand.ExecuteReader()

e poi metto questo

While Conn.Dati.Read
Response.Write(Conn.Dati("id"))
End While

Vedo i dati...

...quindi è un problema di associazione con i controlli...mi date una dritta ??

Si tratta forse soltanto di caricare le proprietà DataValueField e simili per vedere qualcosa ?
SE è questa la soluzione, come faccio ad associare un datareader ad una GridView che non ha proprietà DataSource ??

Nessuno sa aiutarmi ?

Brainkiller Profilo | Guru

>Salve a tutti...volevo provare a fare delle associazioni di dati
>direttamente sfruttando la proprietà DataSource dei controllo
>come la DataList ad esempio, ma a quanto pare non riesco a visualizzare
>un bel nulla
>In questo modo non visualizzo niente

Allora ti dico come procedo io. Non uso mai Reader ma uso il DataAdapter con il metodo Fill che mi va a riempire un DataSet che assegno poi al DataSource. Chiamo il DataBind() e il gioco è fatto.

>SE è questa la soluzione, come faccio ad associare un datareader
>ad una GridView che non ha proprietà DataSource ??

La GridView ha la proprietà DataSource
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

ravalon Profilo | Expert

Vorrei usare i datareader in quanto più veloci per quello che sto facendo, e non mi trovo bene con i dataset....

mi puoi fare un esempio di codice in merito ? possibile che con i datareader non si possa fare ? senza dubbio no, sono io che sono un somaro

Brainkiller Profilo | Guru

>Vorrei usare i datareader in quanto più veloci per quello che
>sto facendo, e non mi trovo bene con i dataset....

Allora in genere si fa così:

DataSet ds=new DataSet(); SqlDataAdapter da=new SqlDataAdapter("SELECT * FROM TABELLA",conn); da.Fill(ds); GridView1.DataSource=ds; GridView1.DataBind();

questo è fatto usando le classi di SQL Server, tu utilizza le omologhe odbc.
conn è la connessione al database che dev'essere istanziata precedentemente.
Ciao

ravalon Profilo | Expert

ma con il datareader no ??

ravalon Profilo | Expert

...e poi altra domanda...il tutto lo devo mettere nell'evento LOAD della pagina o posso metterlo inline nel codice .aspx ?

ravalon Profilo | Expert

Ok...allora il problema stava solo nell'associare al .datasource del controllo un

Datareader

e non

command.executereader()

Inoltre avevo un

Me.Databind()

nell'evento LOAD della pagina che mi bloccava il databind del datareader sul controllo.....

Spostando il Me.Databind in una riga precedente all'azione di associazione della sorgente dati con la proprietà .datasource del controllo tutto è andato liscio
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