Newsgroup: it.comp.lang.visual-basic
Titolo: la gestione di combo box in vb.net

Salute al NG.
E' arrivato VB.net, evviva.
Mi sono detto: ho quella procedurina scrausa in vb6, convertiamola in
VB.net.
Non è il caso, segnalazioni di incompatibilità che ci vuole un anno solo per
leggerle, non dico poi capirle; si, a volte rimpiango il cobol!
Comunque siccome sono un tipo a cui piace fare le cose mi sono detto, me la
scrivo di ex novo.
Apro il framework di VS mi metto sulla form e aggiungo una textBox ed una
ComboBox.
La classica situazione di un codice nella text che fa vedere il valore nella
combo o selezione nella combo che da il valore nella text.
Mi collego al DB Access,
creo la Oledbconnection
creo il DataAdapter con una bella "select c1,c2 from pippo"
creo il DataSet
faccio il binding all'oggetto combobox
creo la sub che mi passa il valore del DataRow alla textbox.
tutto ok
poche righe di istruzioni e vai!
ora passo alla operazione contraria.
dato nella textbox e aggiornamento della combo.
la oledbconnection già ce l'ho
creo nuovo DataAdapter con "select c1,c2, from pippo where (c1 = ?)"
creo nuovo DataSet
sbatto tutto nella sub di evento textChange della textbox
eccetera eccetera
e poi compilo
errore in compilazione sulla riga
DBCommessi.selectcommand.Parameters("C1").value=texbox.text
e non c'è più niente da fare.
La stessa routine da sola funziona perfettamente.
Ora, sicuramente sono io che non ho capito, ma chiedo a voi del NG che cosa.
Grazie a tutti.
G.Bartolini
ps:
per essere più preciso vi invio anche il sorgente della form.
Private Sub frmVendite_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
DBCommessi.Fill(DsCommessi, "Venditori")
ComboBox1.DataSource = DsCommessi.Tables("Venditori")
ComboBox1.DisplayMember =
DsCommessi.Tables("Venditori").Columns("Nome_Cognome").ToString
PopulateTextBoxes(0)
End Sub
Private Sub PopulateTextBoxes(ByVal RowId As Integer)
Dim Drw As DataRow = DsCommessi.Tables("Venditori").Rows(RowId)
txtCodVen.Text = Drw("Codice")
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
PopulateTextBoxes(ComboBox1.SelectedIndex)
End Sub
"La Routine sottostante  da sola su altra form funziona perfettamente"
Private Sub txtCodVen_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles txtCodVen.TextChanged
DsVenditori.Clear()
DBVenditori.SelectCommand.Parameters("Codice").Value = txtCodVen.Text
!!!!!! qui da errore di compilazione
DBVenditori.Fill(DsVenditori)
If DsVenditori.Tables("Venditori").Rows.Count = 0 Then
MessageBox.Show("Commesso non inserito")
Else
Dim DRR As DataRow = DsVenditori.Tables("Venditori").Rows(0)
ComboBox1.Text = DRR("Nome_Cognome")
End If
End Su

 !!!!!! qui da errore di compilazione
Se posizioni il cursore su SelectCommand, premi F1,click su Parameters,
accedi alla pagina Proprietà SqlCommand.Parameters.
E' presente un esempio.
giuseppeD

 ha scritto nel messaggio
news:ZJOCa.48841$g92.1...@news2.tin.it...

Ti ringrazio per la tua risposta, purtroppo avevo già fatte le verifiche che
tu mi consigli.
Inoltre il codice scritto sotto l'evento txtCodVen_textChanged portato pari
pari su una nuova form, da solo, funziona perfettamente.
Sembrerebbe come se due data adapter che operino su una stessa tabella anche
se con query diverse, non vengano gestiti; il che mi pare poco probabile
anche se da MS c'è da aspettarsi di tutto, propendo più per il fatto che sia
io andato nel pallone.
Comunque tutto il busillis sta nel avere su una form una combo legata ad una
tabella con due campi, codice e nome. Una casella di testo in cui porre il
codice una volta selezionato il nome nella combo e nel caso si digiti il
codice nella casella di testo poter leggere il file per codice e porre il
risultato del campo nome nella combo.
L'ho fatto talmente tante volte che evidentemente ormai non lo riesco più a
fare, che abbia bisogno anche per programmare della pillolina blu?
saluti
GB