}// end button elemina

        // evento che applica le modifiche effettuate dall'utente
        private void ButtonApplica_Click(object sender, EventArgs e)
        {
            // caso in cui l'utente voglia moidifcare entrambi gli elementi
            if (this.comboBoxNomeVigneto.Text != "" && this.numericUpDownNrViti.Value != 0)
            {
                DbVigneto w = new DbVigneto();

                // conversione dei valori da decimal a int per eseguire la sottrazione dei valori
                int nrvitimorte    = int.Parse(w.SelectElement(this.id, "nrvitimorte"));
                int vitisostituite = decimal.ToInt32(this.numericUpDownNrViti.Value);
                int viti           = nrvitimorte - vitisostituite;

                // metodo chiamato 2 volte per apportare tutte le modifiche
                w.ModifyItem(this.comboBoxNomeVigneto.Text, "nome", this.id);
                w.ModifyItem(viti, "nrvitimorte", this.id);

                // chiusura del form attuale a apertura del form precedente
                this.formvigneto.Dispose();
                FormVigneto frm = new FormVigneto(this.home);
                frm.Show();
                this.Dispose();
            }
            // caso in cui l'utente voglia modificare solo il numero di viti
            else if (this.comboBoxNomeVigneto.Text == "" && this.numericUpDownNrViti.Value != 0)
            {
                DbVigneto w = new DbVigneto();

                // conversione dei valori da decimal a int per eseguire la sottrazione dei valori
                int nrvitimorte    = int.Parse(w.SelectElement(this.id, "nrvitimorte"));
                int vitisostituite = decimal.ToInt32(this.numericUpDownNrViti.Value);
                int viti           = nrvitimorte - vitisostituite;

                // chiamata del metodo per modificare un elemento
                w.ModifyItem(viti, "nrvitimorte", this.id);

                // chiusura del form attuale a apertura del form precedente
                this.formvigneto.Dispose();
                FormVigneto frm = new FormVigneto(this.home);
                frm.Show();
                this.Dispose();
            }
            // caso in cui l'utente voglia moidifcare solo il nome del vigneto
            else if (this.comboBoxNomeVigneto.Text != "" && this.numericUpDownNrViti.Value == 0)
            {
                DbVigneto w = new DbVigneto();

                // metodo chiamato 2 volte per apportare tutte le modifiche
                w.ModifyItem(this.comboBoxNomeVigneto.Text, "nome", this.id);

                // chiusura del form attuale a apertura del form precedente
                this.formvigneto.Dispose();
                FormVigneto frm = new FormVigneto(this.home);
                frm.Show();
                this.Dispose();
            }

            // se l'utente scegli di non modificare nulla e preme il  pulsante non succede nulla
        }// end applica
        }// end form

        private void ButtonElimina_Click(object sender, EventArgs e)
        {
            // metodo per eliminare un elemento dal database
            DbVigneto w = new DbVigneto();

            w.DeleteItem(this.id);

            // chiusura del form attuale a apertura del form precedente
            this.formvigneto.Dispose();
            FormVigneto frm = new FormVigneto(this.home);

            frm.Show();
            this.Dispose();
        }// end button elemina
        public FormModificaVigneto(ListViewItem.ListViewSubItem id, FormVigneto formvigneto, FormHome home)
        {
            InitializeComponent();
            this.id          = id;
            this.formvigneto = formvigneto;
            this.home        = home;

            DbVigneto w = new DbVigneto();

            // lettura dal db dei dati necessari
            // stampa dei dati tramite textbox
            textBox1.Text = w.SelectElement(id, "nome");

            textBox2.Text = w.SelectElement(id, "nrvitimorte");
        }// end form
        }// end form

        // salva le modifiche e chiude il form attuale andando a riaprire il form precedente
        private void ButtonAggiungi_Click(object sender, EventArgs e)
        {
            if (this.comboBoxNome.Text != "")
            {
                // creazione di un oggetto di tipo vigneto in modo da passare alla query un singolo oggetto e non
                // più valori
                Vigneto vigneto = new Vigneto();
                vigneto.SetNome(this.comboBoxNome.Text);
                vigneto.SetNrVitiMorte(decimal.ToInt16(this.numericUpDownNrVitiMorte.Value));

                DbVigneto w = new DbVigneto();
                w.AddItem(vigneto);

                // chiusura del form attuale a apertura del form precedente
                this.formvigneto.Dispose();
                FormVigneto frm = new FormVigneto(this.formhome);
                frm.Show();
                this.Dispose();
            } // end if
        }     // end Button aggiungi click
        public FormAggiungiVigneto(FormVigneto formvigneto, FormHome formhome)
        {
            InitializeComponent();
            this.formvigneto = formvigneto;
            this.formhome    = formhome;

            DbVigneto w = new DbVigneto();

            // dichiarazione e definizione di variabili ( list<string> e array[int])
            List <string> NomiVigneti = new List <string>();

            NomiVigneti = w.SelectDistinct("nome");

            List <string> NrVitiMorte = new List <string>();

            NrVitiMorte = w.SelectDistinct("nrvitimorte");

            // ciclo che aggiunge al combobox i vari nomi dei vigneti
            for (int i = 0; i < NomiVigneti.Count; i++)
            {
                comboBoxNome.Items.Add(NomiVigneti[i]);
            }
        }// end form