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
Individuare colonna giusta e riempire il database
lunedì 06 aprile 2009 - 17.31
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
giamisan
Profilo
| Newbie
48
messaggi | Data Invio:
lun 6 apr 2009 - 17:31
Innanzitutto ciao a tutti!!!
Ho un piccolo problemino e chiedo a voi quale sia la maniera migliore per risolverlo.
Sto facendo un programmino che dopo aver ricevuto da me dei dati di input tramite delle textbox, mi scrive i dati finali in 2 label ed in altre 2 label mi scrive il nome della colonna del database dove io devo collocare il dato. Ora, con quello che lui va a scrivere in queste 2 label (2 numeri) io devo riempire 2 colonne di un database.
Il mio database è strutturato in questa maniera:
data (chiava primaria)
GS
GF
SG
SF
FG
FS
Per aggiornare il database utilizzo questa linea di codice:
Me.TbContiGiornalieriTableAdapter1.Insert(data, GS, GF, SG, SF, FG,FS)
Premesso che a parte la chiava primaria tutte le altre colonne accettano valori null, il mio problema è che tutte le volte, oltre ad aggiornare il campo data io vado ad aggiornare soltanto 2 delle altre 6 colonne e quindi ogni volta devo andare ad individuare quali colonne aggiornare in base alla proprietà text che assumono le 2 label del nome e quindi scrivere la linea di codice in un modo piuttosto che in un altro.
Vi faccio un esempio
label1= GS
label2 = valore della colonna GS
label3 =SF
label4= valore della colonna SF
in questo modo la linea di codice sarà così:
Me.TbContiGiornalieriTableAdapter1.Insert(data, GS, 0, 0, SF, 0,0)
nel caso in cui lbl1 sia GF e lbl2 sia SG la linea di codice sarà un'altra ancora.
Secondo voi, qual è il modo migliore per risolvere questo problema?
Grazie mille
Giacomo
Anonimo
Profilo
| Senior Member
392
messaggi | Data Invio:
lun 6 apr 2009 - 17:53
NOn ho capito di preciso tutto ma se mi spieghi meglio la permutazione finale vediamo se riusciamo con un po' di algebra e logica a creare un buon algoritmo.
giamisan
Profilo
| Newbie
48
messaggi | Data Invio:
lun 6 apr 2009 - 18:58
Allora, ti spiego bene tutto quanto, sarò un po' lungo ma cercherò di essere il più chiaro possibile
Nel form principale ci sono 3 txtbox che si chiamano G, S, F. Ogni giorno, in ognuna di esse, inserisco un valore numerico.
Alla pressione del control button viene eseguita una somma G+S+F ed il totale viene diviso per 3 con approssimazione.
Dovendo essere ogni giorno G = S = F vuol dire che ogni giorno dovrò togliere qualcosa a G o S o ad F ed aggiungere al valore minore affinchè tutti e 3 siano uguali.
E fin qui non ho nessun problema e sono riuscito a fare tutto.
Tant'è che poi nel form ho 4 label di cui 2 mi dicono da chi devo togliere e a chi devo dare e le altre 2 il quantitativo relativo affinchè G = S = F sia vero.
Combinando G, S, F mi vengono queste 6 combinazioni: GS(da G a S), GF(da G a F), SG(da S a G), SF(da S a F), FG(da F a G) e FS(da F a S) cioè da chi devo togliere e a chi devo dare.
Ora, in virtù di queste combinazioni, ho creato una tabella di database che come chiave primaria ha la data e poi ci sono queste altre 6 colonne che sono proprio le 6 combinazioni sopra elencate.
A questo punto io mi ritrovo con 2 label ognuna delle quali mi può contenere una delle 6 combinazioni, logicamente non mi conterranno mai tutte e due la stessa combinazione e poi ho le altre 2 label che mi contengono l'importo.
Ora, io devo inserire questi dati nel database aggiornando le colonne giuste che vengono prese dalla proprietà text delle 2 label però a priori non posso creare una istruzione sempre valida che mi aggiorni il database poichè a volte dovrò inserire il dato nella colonna GS e nella colonna GF mentre dovrò lasciare vuote tutte le altre 4.
Facendo una analisi delle combinazioni possibili, mi sono accorto che le due label mi possono mettere di fronte a 13 casistiche diverse, comprese le ipotesi (6) in cui la seconda sia nulla e le ipotesi (1) in cui siano nulle entrambe.
A questo punto, se la stringa di codice con la quale io devo aggiornare il db è
Me.TbContiGiornalieriTableAdapter1.Insert(data, GS,GF,SG,SF,FG,FS)
mi trovo a dover comporre 13 potenziali stringhe di codice diverse.
In sostante, detto in parole povere, il mio pensiero è:
se la lbl1=GS e lbl3=FS allora il valore contenuto in lbl2 dovrò inserirlo come secondo argomento del metodo Insert ed il valor di lbl4 sarà l'ultimo argomento
se la lbl1=GF e lbl3=SF allore il valore contenuto in lbl2 andrà come secondo argomento del metodo insert ed il valore di lbl4 andrà come quinto argomento
ogni volta una stringa diversa a seconda dei valori che assumono lbl1 e lbl3
Spero ora di essere stato più esaustivo di prima...
Grazie mille
Giacomo
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 !