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
.NET Framework
Ifo su relazione uno-molti tra due tabelle in vb.net
mercoledì 08 giugno 2011 - 09.29
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
vito90
Profilo
| Newbie
31
messaggi | Data Invio:
mer 8 giu 2011 - 09:29
Ciao ragazzi ,
sto sviluppando un piccolo gestionale per aumentare le mie competenze in materia , ma ho un dubbio su una relazione uno a molti.
In pratica ho due tabelle : Pagamenti e clienti .
Ovviamente la tabella Pagamenti e la tabella padre e la tabella clienti e quella figlia (un pagamento puo essere utilizzato in piu clienti ...)
Nel dataset ho impostato il vincolo in modo che quando vado a cancellare il pagamento se utilizzato nella tabelle clienti nn me lo fa cencellare .
La mia domanda è questa : Nel form pagamenti devo caricare entrambi i tableadapter e i relativi bindingsource o c'è qualche metodo alternativo per far rispettare il vincolo della relazione ??
dimenticavo ... utilizzo come base dati SQL SERVER COMPAT 3.5 e visual studio prof 2010
grazie mille
bobo89
Profilo
| Junior Member
77
messaggi | Data Invio:
mer 8 giu 2011 - 12:34
Non sono riuscito a capire bene il problema che hai.... se provi a spiegarti meglio vedo di darti una mano
Zito Piero
info@makerit.it
http://www.makerit.it
jackk87
Profilo
| Junior Member
106
messaggi | Data Invio:
mer 8 giu 2011 - 13:28
Ciao devi fare un join nel campo from della query es:
SELECT * FROM pagamento INNER JOIN cliente ON pagamento.[id] = cliente.[idpagamento];
vito90
Profilo
| Newbie
31
messaggi | Data Invio:
mer 8 giu 2011 - 17:03
Cerco di essere un po più chiaro .
Se nel form "Metodi di pagamento" ho il pagamento con codice "RD" e il codice "RD" è utilizzato da più clienti , al momento dell'eliminazione di questo metodo di pagamento il programma dovrebbe darmi un messaggio del tipo : "impossibile cancellare record perche presente in anagrafica clienti "
Ora , nel dataset ho impostato gia questo vincolo relazionale (regole di aggiornamento e eliminazione)
Per far questo ho notato che caricando entrambi bindingsource e tableadapter all'avvio del form questo messaggio esce (come errore intercettato tramite try /catch ), ma cosi facendo carico in memoria troppi dati , e questo puo nel tempo degradare le prestazioni del programma .
non so se ora mi sono spiegato
bobo89
Profilo
| Junior Member
77
messaggi | Data Invio:
mer 8 giu 2011 - 17:49
Vorresti rimuovere un metodo di pagamento dopo che è gia stato utilizzato??? Ancora non riesco a capire qual è il punto....
con RD cosa intendi???
Zito Piero
info@makerit.it
http://www.makerit.it
vito90
Profilo
| Newbie
31
messaggi | Data Invio:
gio 9 giu 2011 - 14:56
RD e il codice pagamento (rimessa diretta), ovvero la chiave primaria della tabella pagamenti .
Se provo a cancellare un pagamento gia utilizzato viene fuori un eccezione .
Io voglio intercettare quell'eccezione e far uscire una bella msgbox che mi informa della presenza del pagamento nei clienti.
Questo è tutto ... non so se conviene caricare all'avvio del form due datatable per far questo (in termini di memoria e prestazioni) ... questo è il mio dubbio
babbubba
Profilo
| Senior Member
232
messaggi | Data Invio:
ven 10 giu 2011 - 00:57
Se ho capito bene a te basta intercettare l'evento "DataError" del binding source o della griglia o del controllo bindato con il quale tenti di eliminare il record.
Babbubba
www.bsoftsolutions.it
Chiedere è curiosità ... rispondere è educazione.
bobo89
Profilo
| Junior Member
77
messaggi | Data Invio:
ven 10 giu 2011 - 09:12
ADESSO HO CAPITO....allora giustamente invece di caricarti tutti idati all inizio che è un macello, al momento dell eliminazione fai una if sulla tabella dei pagamenti che ti informa se efettivamente quel tipo di pagamento è stato utilizzato già!!....
Perche imposti RD come chiave primaria e non un semplice ID???
Zito Piero
info@makerit.it
http://www.makerit.it
vito90
Profilo
| Newbie
31
messaggi | Data Invio:
ven 10 giu 2011 - 17:37
Non voglio inguaiarmi con gli indici ... li utilizzo solo quando servono.
In sostanza ho capito che è meglio non caricare all'avvio due tabelle , ma carico quella che mi serve , e per capire se un codice di essa e movimentato in un altra tabella , faccio una query di count sull'altra tabella e il gioco e fatto .
è meno dispendioso ...
Grazie per il tempo che mi avete concesso
bobo89
Profilo
| Junior Member
77
messaggi | Data Invio:
ven 10 giu 2011 - 18:32
Esatto!!
Spero di esserti stato d'aiuto!! Se è cosi accetta la risposta dall' apposito pulsante!!
Ciaooo
Zito Piero
info@makerit.it
http://www.makerit.it
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 !