Autocompilazione Textbox con Combobox

di il
8 risposte

Autocompilazione Textbox con Combobox

Buonasera, ho un problema con il seguente codice. quando lancio il debug mi compare:  sCampo - System.InvalidCastException: ‘Cast specificato non valido.’ e poi avrei bisogno di un consiglio. per aggiornare i textbox ogni volta che cambio la voce nel combo, come potrei fare?

grazie mille anticipatamente.

Private Sub Combocampo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Combocampo.SelectedIndexChanged

        Try
            Connex.openConnection()
        Catch ex As Exception
            MessageBox.Show("Connection failed !!!" & vbCrLf & "Please check that the server is ready !!!", "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Return
        End Try

        Comando.CommandType = CommandType.Text
        Comando.CommandText = "SELECT ID,Partita FROM tabella where campo='" & Combocampo.Text & "'"
        Comando = New OleDbCommand(Comando.CommandText, Connex.getConnection)
        Reader = Comando.ExecuteReader

        While Reader.Read
        
            Dim sCampo As String = Reader.GetString(0)
        	Combocampo.Items.Add(sCampo)
        	TxtLotto.Text = Reader.GetInt32("ID")
        	TxtPartita.Text = Reader.GetString("Partita")

        End While

    End Sub

8 Risposte

  • Re: Autocompilazione Textbox con Combobox

    https://learn.microsoft.com/it-it/dotnet/api/system.invalidcastexception?view=net-7.0

  • Re: Autocompilazione Textbox con Combobox

    08/11/2023 - Arkam ha scritto:


    quando lancio il debug mi compare:  sCampo - System.InvalidCastException: ‘Cast specificato non valido.’

    E' un errore abbastanza triviale: se si è all'inizi, bisognerebbe documentarsi sul funzionamento del framework e della libreria di classi, nonché del linguaggio di programmazione che si sta usando, almeno quanto basta per avere una infarinatura dei suoi principi fondamentali.

    Leggi il link che ti è stato proposto per documentarti.

    08/11/2023 - Arkam ha scritto:


    per aggiornare i textbox ogni volta che cambio la voce nel combo, come potrei fare?

    Devi gestire questa cosa all'interno del metodo che gestisce l'evento SelectedIndexChanged, ma tu l'hai già “farcito” con il codice che riempie la ComboBox. In pratica, alla selezione di un elemento diverso nella ComboBox, tu vai a ricaricarne il contenuto. E' già molto che questo non scateni di nuovo l'evento stesso, avviando un ciclo infinito che termina con uno “stack overflow”, un altro errore che dovresti tenere ben presente.

    Come predetto, studia i rudimenti del linguaggio e delle librerie, poi passa a qualcosa di più impegnativo quando sei abbastanza “solido” da muovere tranquillamente i primi passi.

  • Re: Autocompilazione Textbox con Combobox

    08/11/2023 - Alka ha scritto:


    bisognerebbe documentarsi sul funzionamento del framework e della libreria di classi

    La teoria prima della pratica … altrimenti si va a sbattere continuamente.

    La domanda a cui dovresti rispondere prima di tutto è perché carichi gli elementi nella combo ogni volta che selezioni un suo elemento. Che senso ha? Perché pensi che sia una cosa corretta?

  • Re: Autocompilazione Textbox con Combobox

    09/11/2023 - oregon ha scritto:


    08/11/2023 - Alka ha scritto:


    bisognerebbe documentarsi sul funzionamento del framework e della libreria di classi

    La teoria prima della pratica … altrimenti si va a sbattere continuamente.

    La domanda a cui dovresti rispondere prima di tutto è perché carichi gli elementi nella combo ogni volta che selezioni un suo elemento. Che senso ha? Perché pensi che sia una cosa corretta?

    Carico gli elementi nella combo in modo tale da caricarmi automaticamente le text per poi salvare tutti i dati in una tabella di un DB. Esiste un altro metodo?

  • Re: Autocompilazione Textbox con Combobox

    09/11/2023 - Arkam ha scritto:


    Carico gli elementi nella combo in modo tale da caricarmi automaticamente le text per poi salvare tutti i dati in una tabella di un DB. Esiste un altro metodo?

    Non hai letto bene la domanda: nessuno sta recriminando il caricamento della Combo in generale, ma il momento e il contesto in cui viene fatto.

    Rileggi bene e rifletti.

  • Re: Autocompilazione Textbox con Combobox

    09/11/2023 - Alka ha scritto:


    09/11/2023 - Arkam ha scritto:


    Carico gli elementi nella combo in modo tale da caricarmi automaticamente le text per poi salvare tutti i dati in una tabella di un DB. Esiste un altro metodo?

    Non hai letto bene la domanda: nessuno sta recriminando il caricamento della Combo in generale, ma il momento e il contesto in cui viene fatto.

    Rileggi bene e rifletti.

    Certo, lo so che nessuno sta recriminando niente, io sono qua per acquisire più consigli possibili e migliorare. Adesso mi sta venendo una riflessione… mi converrebbe caricare la combo nel “form load” come faccio cn il datagridview

  • Re: Autocompilazione Textbox con Combobox

    09/11/2023 - Arkam ha scritto:


    Certo, lo so che nessuno sta recriminando niente, io sono qua per acquisire più consigli possibili e migliorare.

    Stavo solo sottolineando che la domanda “puntava il dito” su un altro aspetto rispetto a quello che stavi osservando tu.

    09/11/2023 - Arkam ha scritto:


    Adesso mi sta venendo una riflessione… mi converrebbe caricare la combo nel “form load” come faccio cn il datagridview

    Più che convenire, direi che è d'obbligo. Ma non per chissà quale affinità con la GridView, ma per il semplice fatto che tu devi correlare quello che ti serve con il codice: tu vuoi caricare gli elementi nella Combo ogni volta che selezioni qualcosa dalla Combo? Non credo proprio. Vuoi caricarli all'avvio della finestra? E allora dove hai inserito il codice è il posto sbagliato, e il Form_Load è senz'altro più sensato.

    La programmazione non è qualcosa che si gestisce per approssimazione, bisogna essere precisi.

  • Re: Autocompilazione Textbox con Combobox

    09/11/2023 - Alka ha scritto:


    La programmazione non è qualcosa che si gestisce per approssimazione, bisogna essere precisi.

    Naturalmente concordo e aggiungo che bisogna anche intendersi.

    Abbiamo impiegato diversi messaggi per capire che quell'evento è il posto sbagliato in cui caricare la combo e che questo è il problema principale.

    Il consiglio è di scrivere una Sub apposita per caricare la Combo e richiamarla, opportunamente, dove ti serve, prima di tutto nella Load ma anche in altre occasioni in cui il contenuto della Combo deve essere rinfrescato.

    In seguito, utilizza l'evento Combocampo_SelectedIndexChanged esclusivamente per aggiornare il contenuto della textbox a partire dal contenuto della combo.

Devi accedere o registrarti per scrivere nel forum
8 risposte