private void buSalva_Click(object sender, EventArgs e)
        {
            string tableName = "ARTICOLI";

            if (_dsServizio.Tables[tableName].Rows.Count == 0)
            {
                return;
            }



            try
            {
                foreach (DataRow riga in _dsServizio.Tables[tableName].Rows)
                {
                    //decimal IDARTICOLO =  (decimal)riga["IDARTICOLO"];
                    // string RIFERIMENTO = (string)riga["PARTE"];


                    //PARTE = (string)riga["PARTE"];
                    //COLORE = (string)riga["COLORE"];

                    // if (!string.IsNullOrEmpty(riga["PARTE"])
                    if (riga["IDARTICOLO"] != DBNull.Value)
                    {
                        decimal IDARTICOLO = (decimal)riga["IDARTICOLO"];

                        // && x.RIFERIMENTO.Trim() == RIFERIMENTO
                        CDCDS.CDC_ARTICOLIRow articolo = _DS.CDC_ARTICOLI.Where(x => x.IDARTICOLO == IDARTICOLO).FirstOrDefault();
                        if (articolo == null)
                        {
                            articolo = _DS.CDC_ARTICOLI.NewCDC_ARTICOLIRow();

                            articolo.PARTE  = selPARTE;
                            articolo.COLORE = selCOLORE;

                            //articolo.PARTE = ((string)riga["PARTE"]).ToUpper().Trim();
                            //articolo.COLORE = ((string)riga["COLORE"]).ToUpper().Trim();
                            articolo.SEQUENZA          = (Int32)riga["SEQUENZA"];
                            articolo.DESCRIZIONE       = ((string)riga["DESCRIZIONE"]).ToUpper().Trim();
                            articolo.COLORECOMPONENTE  = ((string)riga["COLORECOMPONENTE"]).ToUpper().Trim();
                            articolo.MISUREPERCAMPIONE = (Int32)riga["MISUREPERCAMPIONE"];
                            articolo.PESO       = (double)riga["PESO"];
                            articolo.SFRIDO     = (double)riga["SFRIDO"];
                            articolo.SUPERFICIE = (double)riga["SUPERFICIE"];

                            //articolo.IDDETTAGLIO = IDDETTAGLIO;

                            //articolo.MINIMO = ConvertiInStringa(riga[""]).ToUpper().Trim();

                            //articolo.RIFERIMENTO = ((string)riga[2]).ToUpper().Trim();
                            //articolo.TAMPONE = ConvertiInStringa(riga[8]).ToUpper().Trim();
                            //articolo.TOLLERANZA = ConvertiInStringa(riga[5]).ToUpper().Trim();
                            articolo.DATARIFERIMENTO = DateTime.Now;
                            articolo.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                            _DS.CDC_ARTICOLI.AddCDC_ARTICOLIRow(articolo);
                        }
                        else
                        {
                            articolo.PARTE             = ((string)riga["PARTE"]).ToUpper().Trim();
                            articolo.COLORE            = ((string)riga["COLORE"]).ToUpper().Trim();
                            articolo.SEQUENZA          = (Int32)riga["SEQUENZA"];
                            articolo.DESCRIZIONE       = ((string)riga["DESCRIZIONE"]).ToUpper().Trim();
                            articolo.COLORECOMPONENTE  = ((string)riga["COLORECOMPONENTE"]).ToUpper().Trim();
                            articolo.MISUREPERCAMPIONE = (Int32)riga["MISUREPERCAMPIONE"];
                            articolo.PESO            = (double)riga["PESO"];
                            articolo.SFRIDO          = (double)riga["SFRIDO"];
                            articolo.SUPERFICIE      = (double)riga["SUPERFICIE"];
                            articolo.DATARIFERIMENTO = DateTime.Now;
                            articolo.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                        }
                    }
                    else
                    {
                        CDCDS.CDC_ARTICOLIRow articolo = _DS.CDC_ARTICOLI.NewCDC_ARTICOLIRow();

                        articolo.PARTE       = selPARTE;
                        articolo.COLORE      = selCOLORE;
                        articolo.SEQUENZA    = (Int32)riga["SEQUENZA"];
                        articolo.DESCRIZIONE = ((string)riga["DESCRIZIONE"]).ToUpper().Trim();

                        articolo.COLORECOMPONENTE  = ((string)riga["COLORECOMPONENTE"]).ToUpper().Trim();
                        articolo.MISUREPERCAMPIONE = (Int32)riga["MISUREPERCAMPIONE"];
                        articolo.PESO       = (double)riga["PESO"];
                        articolo.SFRIDO     = (double)riga["SFRIDO"];
                        articolo.SUPERFICIE = (double)riga["SUPERFICIE"];

                        articolo.DATARIFERIMENTO = DateTime.Now;
                        articolo.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                        _DS.CDC_ARTICOLI.AddCDC_ARTICOLIRow(articolo);
                    }
                }


                //cerco i cancellati e li marco
                List <CDCDS.CDC_ARTICOLIRow> articoli = _DS.CDC_ARTICOLI.Where(x => x.RowState != DataRowState.Added && x.PARTE == selPARTE && x.COLORE == selCOLORE).ToList();
                foreach (CDCDS.CDC_ARTICOLIRow articolo in articoli)
                {
                    DataRow[] art = _dsServizio.Tables["ARTICOLI"].Select("IDARTICOLO = " + articolo.IDARTICOLO.ToString());

                    if (art.GetLength(0) == 0)
                    {
                        articolo.DATARIFERIMENTO = DateTime.Now;
                        articolo.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                        articolo.DELETED         = "S";
                    }
                }


                CDCBLL bll = new CDCBLL();
                bll.SalvaDatiArticoli(_DS);
                _DS.CDC_ARTICOLI.AcceptChanges();

                _DS.CDC_ARTICOLI.Clear();
                bll.CaricaArticoli(_DS);
                CaricaArticolo(selPARTE, selCOLORE);


                dgvDimensioni.DataSource = null;
                dgvDimensioni.DataMember = "";

                dgvSpessori.DataSource = null;
                dgvSpessori.DataMember = "";
            }
            catch (Exception ex)
            {
                MostraEccezione(ex, "Errore in crea Salva Articoli");
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }



            foreach (DataGridViewRow riga in dgvDettaglio.Rows)
            {
                string parte  = (string)riga.Cells["PARTE"].Value;
                string colore = (string)riga.Cells["COLORE"].Value;

                CDCDS.CDC_ARTICOLIRow arow = _DS.CDC_ARTICOLI.Where(x => x.PARTE == parte && x.COLORE == colore).FirstOrDefault();
                if (arow == null)
                {
                    riga.Cells[1].Style.BackColor = Color.Yellow;
                    riga.Cells[2].Style.BackColor = Color.Yellow;
                }
                else
                {
                    List <CDCDS.CDC_ARTICOLI_DIMENSIONIRow> artdimensioni = _DS.CDC_ARTICOLI_DIMENSIONI.Where(x => x.IDARTICOLO == arow.IDARTICOLO).OrderBy(x => x.IDDIMENSIONE).ToList();
                    List <CDCDS.CDC_ARTICOLI_SPESSORIRow>   artspessori   = _DS.CDC_ARTICOLI_SPESSORI.Where(x => x.IDARTICOLO == arow.IDARTICOLO).OrderBy(x => x.IDSPESSORE).ToList();
                    if (artspessori.Count == 0 || artdimensioni.Count == 0)
                    {
                        riga.Cells[1].Style.BackColor = Color.Orange;
                        riga.Cells[2].Style.BackColor = Color.Orange;
                    }
                    else
                    {
                        riga.Cells[1].Style.BackColor = Color.White;
                        riga.Cells[2].Style.BackColor = Color.White;
                    }
                }
            }
        }