Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Datagridview da sql server
lunedì 23 gennaio 2012 - 09.29
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Windows XP
|
Visual Studio 2010
|
SQL Server 2000
|
Office 2010
|
Office 2007
|
Office 2003
|
Crystal Reports XI
jjchuck
Profilo
| Senior Member
429
messaggi | Data Invio:
lun 23 gen 2012 - 09:29
ciao a tutti
sono un novellino tuttavia mi trovo davanti ad un problema niente male per la mia inesperienza:
debbo realizzare un form con un datagrid composto da una decina di campi quasi tutti provenienti da diverse view (debbo legare diverse visualizzazioni perchè in una sola diventerebbe la divina commedia) come debbo fare?
Ovvero...debbo aggiungere un dataset per ogni query?
Premesso che sono campace di realizzare un datagrid con connessione eccc...ma mi chiedo quale sia l'oggetto giusto quando la presentazione dei dati deriva da diverse interrogazioni
non so se sono stato chiaro
ciao
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 23 gen 2012 - 10:00
>ciao a tutti
ciao
>debbo realizzare un form con un datagrid composto da una decina
>di campi quasi tutti provenienti da diverse view (debbo legare
>diverse visualizzazioni perchè in una sola diventerebbe la divina
>commedia) come debbo fare?
cosa intendi per "diverse view"? sono viste diverse su sql server?
>Ovvero...debbo aggiungere un dataset per ogni query?
non è necessario ma c'è da capire come quelle view devono essere organizzate insieme. Riesci a spiegarci meglio? Prova a fare un esempio anche con dati.
>Premesso che sono campace di realizzare un datagrid con connessione
>eccc...ma mi chiedo quale sia l'oggetto giusto quando la presentazione
>dei dati deriva da diverse interrogazioni
sarebbe meglio preparare una sola interrogazione. Ma vediamo di capire meglio se è possibile.
--
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
jjchuck
Profilo
| Senior Member
429
messaggi | Data Invio:
lun 23 gen 2012 - 15:47
1670_mydoc.zip
grazie per aver risposto
non servono dati... considera che i seguenti campi risiedono in diverse tabelle e che prima di essere inseriti nella stessa e unica tabella finale necessitano di una view (manipolazione) su sql 2000...
il report che debbo ottenere è ca cosi
Articolo,qtà venduta AP,qtà venduta AC,Nr clienti AP,Nr clienti AC,Disponibiltà,Ordini Fornitori,Ordini Clienti,quantità difettose....ecc
come puoi immaginare ogni campo ha dati in tabelle diverse per forza di cose...
si può integrare in una sola view tramite passaggi diversi ma mi rimetto a voi per la soluzione piu elegante-performante visto che sono
un novellino in vs2010...
ma A ME MI PIACE MOLTO vs 2010 e vorrei imparare (oltre ai pdf che mi faccio debbo pure lavorare
)
attendo con ansia
ps:allego un doc dove mostro come in una interrogazione dove ci sono diverse tabelle e diverse subquery tutto funzioni semplicemente
dichiarando dataadapter.fill(dataset,tabella) ...dove tabella è appunto una sola di quelle che uso!! come può andargli bene (cioè nella select ci sono diversi FROM TAB1,,,FROM TAB2...ecc)
ciao
jjchuck
Profilo
| Senior Member
429
messaggi | Data Invio:
mar 24 gen 2012 - 17:42
mi hai abbandonato?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 24 gen 2012 - 17:52
>mi hai abbandonato?
no tranquillo, è che serve un po' di tempo e ora non riesco, abbi pazienza
--
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
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 26 gen 2012 - 00:34
>grazie per aver risposto
>non servono dati... considera che i seguenti campi risiedono
>in diverse tabelle e che prima di essere inseriti nella stessa
>e unica tabella finale necessitano di una view (manipolazione)
>su sql 2000...
le tue strutture ed i dati di esempio servono per aiutarti a produrre la query di cui parli sotto. Risulta molto difficile immaginare da che tabella arriva che campo, non trovi?
>il report che debbo ottenere è ca cosi
>Articolo,qtà venduta AP,qtà venduta AC,Nr clienti AP,Nr clienti
>AC,Disponibiltà,Ordini Fornitori,Ordini Clienti,quantità difettose....ecc
>come puoi immaginare ogni campo ha dati in tabelle diverse per
>forza di cose...
>si può integrare in una sola view tramite passaggi diversi ma
>mi rimetto a voi per la soluzione piu elegante-performante visto
>che sono un novellino in vs2010...
ma A ME MI PIACE MOLTO vs 2010
>e vorrei imparare (oltre ai pdf che mi faccio debbo pure lavorare
)
la soluzione, e non la più elegante, ma credo l'unica nel tuo caso, è scrivere una query che già torna TUTTO quello che ti serve.
Basta joinare le tabelle ed ottenere le informazioni necessarie. Per questo mi serve sapere com'è il tuo modello entità/relazione.
Il comando risulterà essere uno solo ben formato (con l'aggiunta di eventuali indici se necessario per le prestazioni) e nulla più.
Avrai già tutto organizzato sul database.
Detto questo, la soluzione più elegante è usare le stored procedure, se sei sicuro che il db è solo SQL Server, potresti prenderci anche in prestazioni (per via della cache dei piani di esecuzione, ma per questo dovremmo parlare ore
)
--
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
jjchuck
Profilo
| Senior Member
429
messaggi | Data Invio:
gio 26 gen 2012 - 11:10
grazie per la risposta
credo seguiro il tuo primo consiglio (le stored procedure non le conosco....ho fatto economia e sono solo due anni che ""smanetto"" e studio vb e sql)...
tuttavia la sola domanda che ti faccio è:
se metto tutto in una sola query elaborata in modo che sia il piu veloce possibile basta aggiungere lo script SQL come nel file word che ho postato???
se si seguo questa strada e ti faccio sapere
grazie ancora
jjChcuk
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 26 gen 2012 - 11:54
>grazie per la risposta
>credo seguiro il tuo primo consiglio (le stored procedure non
>le conosco....ho fatto economia e sono solo due anni che ""smanetto""
>e studio vb e sql)...
>tuttavia la sola domanda che ti faccio è:
>se metto tutto in una sola query elaborata in modo che sia il
>piu veloce possibile basta aggiungere lo script SQL come nel
>file word che ho postato???
al posto del comando metti quella query composta.. è una sola.
Ma dammi retta, siccome è VERAMENTE SEMPLICE la sintassi delle stored procedure, usa quelle e "metti dentro" la tua query, chiamando poi col nome della stored procedure al posto del comando sql (file word).
basta impostare il CommandType in CommandType.StoredProcedure..
--
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
jjchuck
Profilo
| Senior Member
429
messaggi | Data Invio:
gio 26 gen 2012 - 12:12
Ora ho 12 query tutte in una :
semplicemente ho usato subquery (...from (qui inserisco la query chiamata tab)tab...) ..non so come indicizzarle anche se intuisco cosa intendi!!!
... tornando al tuo suggest ho due domande:
-...objDataAdapter.Fill(objDataSet, "COSA METTO QUI?") ' va bene il nome di una tabella qualsiasi contenuta nell' sql ?
- ...objDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure ' basta cambiare il commandtype?
scusa il ritardo ma ho dovuto convertire tutto un progetto da access a sql2003
attendo con ansia
ciao e scusa l'abuso di dot ....ma daltra parte siamo su dotnethell
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 8 feb 2012 - 12:20
>semplicemente ho usato subquery (...from (qui inserisco la query
>chiamata tab)tab...) ..non so come indicizzarle anche se intuisco
>cosa intendi!!!
non si indicizza la query, ma devi disegnare gli indici corretti in base alle tabelle che utilizzi sulla tua query.
Devi profilarla e controllarne il piano di esecuzione, solo così vedi quale indice o quali indici ti serviranno per aumentare le performances e ridurre anche il numero di IO che senza indici la query deve far fare al motore.
>-...objDataAdapter.Fill(objDataSet, "COSA METTO QUI?") ' va bene
>il nome di una tabella qualsiasi contenuta nell' sql ?
usa il metodo Fill senza il secondo parametro
>- ...objDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure
>' basta cambiare il commandtype?
per lanciare una stored procedure sì, ma se vuoi usare le query lascia quello di default che è Text.
>ciao e scusa l'abuso di dot ....ma daltra parte siamo su dotnethell
eeheheheh umorista
--
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
jjchuck
Profilo
| Senior Member
429
messaggi | Data Invio:
mer 8 feb 2012 - 13:18
per il resto ho capito e ti ringrazio MILLE volte
ma mi puoi fare un esempio di come si indicizzano le query/tabelle...non so da dove partire
se sono curioso
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 8 feb 2012 - 14:39
>ma mi puoi fare un esempio di come si indicizzano le query/tabelle...non so da dove partire
eh... pare facile.. non esistono esempi concreti, esiste la tua situazione.
devi capire bene le strutture (
http://msdn.microsoft.com/en-us/library/ms180978
(v=sql.100).aspx)
devi capire bene a cosa servono gli indici (
http://msdn.microsoft.com/en-us/library/ms191195
(v=sql.100).aspx)
devi vedere le tue interrogazioni e conoscere qual è il piano di esecuzione che esse utilizzano (tastino su Management Studio "Display Actual Execution Plan" ed esegui la query, apparirà un tab col piano utilizzato)
devi capire i piani di esecuzione (
http://msdn.microsoft.com/en-us/library/ms178071
(v=sql.100).aspx)
devi controllare cosa il piano usa e come intervenire per migliorare tempi ed io, sfruttando anche i dati tornati dai SET statement (STATISTICS IO -
http://msdn.microsoft.com/it-it/library/ms184361
(v=sql.100).aspx e SET STATISTICS TIME -
http://msdn.microsoft.com/it-it/library/ms190287
(v=sql.100).aspx)
e poi devi disegnare gli indici in base non ad una sola query, ma ai tipi di accesso che fai su determinate tabelle.
Considera poi che puoi fare indici di copertura (per soddisfare una ben precisa query), indici filtrati (per considerare solo una porzione di dati).
ecc..
c'è un mondo dietro alla tua domanda..
--
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
jjchuck
Profilo
| Senior Member
429
messaggi | Data Invio:
mer 8 feb 2012 - 14:48
ho 3 anni piu di te e fino a 27 non ho mai acceso un pc...
non mi spaventi...
il mio cervello è abituato ad affacciarsi sui precipizi
quello che mi spaventa e non poter piu lavorare con sql,vs...ecc
visto che ho fatto economia non ho mercato come "pseudo-smanettone"...
cmq grazie ancora
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 8 feb 2012 - 14:50
>ho 3 anni piu di te e fino a 27 non ho mai acceso un pc...
>non mi spaventi...
>il mio cervello è abituato ad affacciarsi sui precipizi
ottimo, allora facci sapere quando inizierai ad usare le stored procedure!
--
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
Torna su
Stanze Forum
Elenco Threads
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 !