Memorizzare dati su db da listbox

sabato 29 agosto 2009 - 02.13

sg Profilo | Newbie

Ho una listbox con alcune voci caricate in progettazione e selezionata una vorrei memorizzare nel rispettivo campo del database anzichè la voce stessa una sigla abbinata ad ogni voce.
Esempio per aliquote iva:
ES = Esente
NS = Non soggetto
NI = Non imponibile

Premetto che lavoro in VB.NET 2005 e sto utilizzando il DataBindings in progettazione.
Attualmente sto usando SelectIndex che mi memorizza l'indice e imposta automaticamente la selezione.
E' però possibile fare diversamente con delle sigle più intuibili?
Potrei usare come voci solo le sigle ma per le descrizioni corrispondenti come le visualizzo?


ilario Profilo | Senior Member

una soluzione che mi viene in mente al volo è utilizzare non un listbox ma ad esempio una listview dove inserisci in una colonna la sigla e in un altra la descrizione

nel db salvi il valore della colonna sigla

ciao
ilario

sg Profilo | Newbie

Ho visto come funziona la listview e penso che si può utilizzare nel mio caso solo che va bene principalmente per selezioni più complesse ed inoltre non gestisce il databindings con collegamento al datasource in modo semplice e automatico come la listbox in fase di progettazione.
Vedo di studiarci un po di più e capire cosa mi conviene.
Grazie.

Ciao.

ilario Profilo | Senior Member

cioa

esiste anche la datagridview
non so come funziona esattamente, non usando il databinding,(faccio tutto via codice) non l'ho mai usata

ciao
ilario

alexmed Profilo | Guru

Ciao
io adotterei una soluzione creando una tabella "aliqute_iva" con due colonne:

id_aiquota (int) | Descrizione (nvarchar)
1 | Esente
2 | Non soggetto
3 | Non imponibile

A questo punto colleghi la tabella alla listbox e quando devi salvare i dati andrai a mettere il valore "id_aliquota" mediante il valore SelectedValue della ListBox

Ciao

alexmed

sg Profilo | Newbie

Ho fatto diversi tentativi prima con listview ma ho preferito lasciar perdere anche se fattibile.
Ho provato con due listbox una con solo le descrizioni e l'altra con le sigle e quest'ultima mi aggiorna il db tramite databindings e selezionando la descrizione della 1 listbox da codice seleziono lo stesso index nell'altra listbox.
Diciamo che devo solo fare una semplice selezione a video di un form che gestisce l'aliquota iva quindi potrei anche usare un semplice textbox in cui l'utente immette la sigla.
Alla fine ho deciso di usare una listbox con le descrizioni che aggiornano il db con i databindig e tramite gli eventi format/parse prima di prelevare o aggiornare il dbtramuto le descrizioni in sigle e viceversa.
Può darsi con l'esperienza e con versioni succesive del vb.net potrei fare diversamente.
Per il momento chiudo l'argomento perchè ne ho uno più serioe urgente che trovi nella voce "master/details con datagridview" al quale nessuno mi risponde se tu puoi rispondimi o chiedi a qualcuno con più esperienza se può rispondermi.

Grazie e ciao



simbla79 Profilo | Junior Member

Ciao,

se non sbagli c'è una proprieta che si chiama VALUEMEMBER di tipo stringa, dove gli passi il nome della colonna da dove deve "prendere il dato". nel tuo caso se hai la tabella con mettiamo il caso 2 colonne una e la sigla e l'altra la descrizione:
SIGLA DESCRIZIONE
NE Esente
IV IVA
.....

come VALUEMEMBERE imposti la colonna "SIGLA" e come display member (ovvero quello che devi visualizzare nella listbox) metti la colonna "DESCRIZIONE" quindi a video vedrai la descrizione nel DB ti salva la "SIGLA"

Ti consiglerei di "tabellizzare" le sigle e le descrizioni in modo che se un domani devi aggiungere una nuova sigla lo fai nella tabella e non nelle voci "fisse" della listbox.

Spero di esserti stato d'aiuto
Ciao
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