Dataset e Dataadapter

sabato 19 giugno 2010 - 13.11

gianlu29 Profilo | Junior Member

la mia domanda è molto semplice...
è possibile creare un dataset completo per consentire operazioni attraverso un dataadapter senza eseguire più connessioni al database? escludendo ovviamente il momento dell'update dal dataset al db...

alx_81 Profilo | Guru

>la mia domanda è molto semplice...
>è possibile creare un dataset completo per consentire operazioni
>attraverso un dataadapter senza eseguire più connessioni al database?
fondamentalmente in memoria puoi tenerti anche un tuo subset del database, però fai attenzione a cosa carichi (in termini di peso, per la memoria), quali relazioni gestisci, e soprattutto alla concorrenza. Non dimenticarti una frequenza di refresh o di una tecnica per evitare che altri utenti modifichino i dati senza che tu lo sappia. In caso alternativo rischi di sovrascrivere le modifiche fatte dagli altri e comunque di essere desincronizzato con la situazione reale.


--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

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

gianlu29 Profilo | Junior Member

ho capito grazie mille!!risposta più che soddisfacente...ma sai anche come eseguire query nel dataset senza eseguire la connessione?

esempio
CN = new OleDbConnection(Connessione);
DataSet ds = new DataSet();
CN.Open();
OleDbDataAdapter dtAdapter = new OleDbDataAdapter("SELECT * FROM tbl", Connessione);
dtAdapter.Fill(ds);
dataGrid.DataSource = ds;
CN.Close();

come in questo caso il dataadapter ha bisogno della relativa connessione per eseguire la query ed esegue quindi, ogni volta che lo lancio, una query sul database....come faccio ad interrogare il dataset senza andare ad eseguire query sul database?

alx_81 Profilo | Guru

>ho capito grazie mille!!risposta più che soddisfacente...ma sai
>anche come eseguire query nel dataset senza eseguire la connessione?
>come in questo caso il dataadapter ha bisogno della relativa
>connessione per eseguire la query ed esegue quindi, ogni volta
>che lo lancio, una query sul database....come faccio ad interrogare
>il dataset senza andare ad eseguire query sul database?
devi ricavare le tabelle tramite la collection Tables (http://msdn.microsoft.com/en-us/library/system.data.dataset.tables.aspx) e poi usare il metodo Select (http://msdn.microsoft.com/en-us/library/system.data.datatable.select.aspx) o Filter della DefaultView (http://msdn.microsoft.com/en-us/library/system.data.datatable.defaultview.aspx) di ogni tabella.
Se imposti relazioni tra i datatable puoi anche ricavare le righe che vanno in join con particolari record (http://msdn.microsoft.com/it-it/library/system.data.datarow.getchildrows.aspx).

--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

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

gianlu29 Profilo | Junior Member

molto esaudiente...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