Il "Buon" Diego tempo addietro mi anticipava di poter usare invalidate/refresh in certe circostanze per poter aggioranre da subito oggetti (listbox o combobox) che hanno subite modifiche. Nell'esempio che espongo di seguito, chiedo non è possibile utilizzare invalidate o refresh per aggiornare in modo istantaneo la listbox (LSTpreventivo) senza dover utilizzare la "select.....? Piu' volte in altre circostanze mi si presenta questa neccessità e non ho trovato supporto in "rete" ne altrove per approfondire lo studio....Non ho alternativa se non chiedere il Vs/aiuto.Grazie.
Dim result As DialogResult
result = MsgBox("Confermi di eliminare il record?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Attenzione")
If result = DialogResult.No Then
Exit Sub
Else
Using Conn As New OleDbConnection(Dbstring)
Conn.Open()
Using cmd As New OleDb.OleDbCommand("DELETE * FROM PREVENTIVI WHERE IDpreventivo=@IdPrev", Conn)
Dim riga As DataRowView = LSTpreventivo.SelectedItem
Dim IdPrev = riga("IdPreventivo")
With cmd
cmd.Parameters.Add("@IdPrev", OleDbType.Integer).Value = IdPrev
cmd.ExecuteNonQuery()
End With
End Using
'Aggiorno la listbox
Dim Nprev As Integer = CBXragsociale.SelectedValue
Using cmd As New OleDbCommand("Select PREVENTIVI.IDpreventivo,"&
"PREVENTIVI.Npreventivo,"&
"PREVENTIVI.Descrizione,"&
"PREVENTIVI.Data,"&
"PREVENTIVI.Lunghezza,"&
"PREVENTIVI.Larghezza,"&
"PREVENTIVI.Altezza,"&
"PREVENTIVI.Nasetto,"&
"PREVENTIVI.Spessore,"&
"PREVENTIVI.Finitura,"&
"PREVENTIVI.Porte,"&
"PREVENTIVI.Appunti,"&
"VENDITORI.IDvenditore,"&
"VENDITORI.Nome,"&
"VENDITORI.Cognome From PREVENTIVI RIGHT OUTER JOIN VENDITORI ON PREVENTIVI.IDvenditore=VENDITORI.IDvenditore WHERE PREVENTIVI.IDanagrcliente=@IDanagrcliente ", Conn)
cmd.Parameters.Add("@IDanagrcliente", OleDbType.Integer).Value = Nprev
Using dr As OleDbDataReader = cmd.ExecuteReader()
Dim dt As New DataTable
dt.Load(dr)
With LSTpreventivo
.DataSource = dt
.DisplayMember = "Npreventivo"
.ValueMember = "IDpreventivo"
End With
End Using
End Using
Conn.Close()
End Using
End If
End Sub