Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C#] Applicazione Lenta

    Ciao,

    Riscontro un rallentamento di 2-3 secondi circa quando cambio la selezione della comboBoxCodice o Descrizione, questi sono i 2 codici interessati...

    Non vi sembra che sia un pò troppo? lo eseguo con un pc che ha 512mb di ram ed un centrino 1,6Ghz...


    codice:
            private void comboBoxCodice_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (comboBoxCodice.SelectedIndex == 0)
                    comboBoxDescrizione.SelectedIndex = 0;
                else
                {
                    using (OleDbConnection conn = new OleDbConnection(MainForm.Database()))
                    {
                        conn.Open();
    
                        string query = "SELECT descrizione FROM articoli WHERE codice='" + comboBoxCodice.SelectedItem.ToString() + "'";
                        OleDbCommand oleCmd = new OleDbCommand(query, conn);
    
                        string desc = System.Convert.ToString(oleCmd.ExecuteScalar());
    
                        conn.Close();
    
                        comboBoxDescrizione.SelectedItem = desc;
                        textBoxPrezzo.Text = _PrezzoArticoli[comboBoxCodice.SelectedItem.ToString()].ToString("#,###.0000");
                    }
                }
            }
    
     private void comboBoxDescrizione_SelectedIndexChanged(object sender, EventArgs e)
            {
                textBoxPrezzo.Text = "";
                textBoxQuantita.Text = "";
                if (comboBoxDescrizione.SelectedIndex == 0)
                    comboBoxCodice.SelectedIndex = 0;
                else
                {
                    using (OleDbConnection conn = new OleDbConnection(MainForm.Database()))
                    {
                        conn.Open();
    
                        string query = "SELECT codice FROM articoli WHERE descrizione='" + comboBoxDescrizione.SelectedItem.ToString() + "'";
                        OleDbCommand oleCmd = new OleDbCommand(query, conn);
    
                        string cod = oleCmd.ExecuteScalar().ToString();
    
                        conn.Close();
    
                        comboBoxCodice.SelectedItem = cod;
                        textBoxPrezzo.Text = _PrezzoArticoli[cod].ToString("#,###.0000");
                    }
                }
            }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    L'applicazione è lenta perché apri una connessione ai dati ed esegui una query su una tabella - che potrebbe essere pure molto voluminosa, in certi casi - ogni volta che cambi la selezione nel controllo ComboBox, o questo sembra essere ciò che avviene dal codice che ho letto.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.