예제 #1
0
        private void btModificaRegistro_Click(object sender, EventArgs e)
        {
            if (iIndiceRegistro != -1)
            {
                List <RegistroAtributo> r = new List <RegistroAtributo>();
                Modifica_Atributo       f = new Modifica_Atributo(auxTab.LAtributo, 1);

                if (f.ShowDialog() == DialogResult.OK)
                {
                    r = f.Reg;
                    int             ntam   = r.Count;
                    int             i2     = 0;
                    List <Atributo> l      = auxTab.LAtributo;
                    bool            existe = IntegridadReferencialClavesSecundarias(r);

                    if (existe)
                    {
                        foreach (Atributo value in l)
                        {
                            RegistroAtributo RegistroActual = null;
                            RegistroAtributo RegistroNuevo  = null;
                            RegistroActual = auxTab.Registros[iIndiceRegistro].FirstOrDefault(p => p.Atr.Nombre == value.Nombre);
                            RegistroNuevo  = r.FirstOrDefault(p => p.Atr.Nombre == value.Nombre);

                            if (RegistroActual != null && RegistroNuevo != null)
                            {
                                RegistroActual.Reg = RegistroNuevo.Reg;
                            }
                            else
                            if (RegistroNuevo != null)
                            {
                                auxTab.Registros[iIndiceRegistro].Add(RegistroNuevo);
                            }
                        }
                        auxTab.ActualizaTabla();
                        actualizaDataGridRegistros();
                    }
                    else
                    {
                        MessageBox.Show("No se puede insertar el registro por que no se está respetando la integridad de los datos");
                    }
                }

                iIndiceRegistro = -1;
            }
            else
            {
                MessageBox.Show("Seleccione un registro en la tabla");
            }
        }
예제 #2
0
        //Nuevo Registro
        private void NewAdd_Click(object sender, EventArgs e)
        {
            List <RegistroAtributo> r = new List <RegistroAtributo>();
            Modifica_Atributo       f = new Modifica_Atributo(auxTab.LAtributo, 0);

            if (f.ShowDialog() == DialogResult.OK)
            {
                r = f.Reg;

                //Antes de insertar el registro se valida la integridad de los datos, si los datos que se pretenden insertar "Existen"
                //A estos se les permite la inserción, aun que despues de haber pasado este primer filtro tambien se verifica
                //Si la clave primaria que identifica al Registro ya exsite como identificador de algun otro registro y si esto es asi
                //No se permite su inserción.
                bool existe = IntegridadReferencialClavesSecundarias(r);

                if (existe)
                {
                    if (auxTab.BPK)
                    {
                        RegistroAtributo ClavePrimaria = r.FirstOrDefault(p => p.Atr.TipoIndice == "Clave Primaria");
                        if (auxTab.CPrimarias.Contains(ClavePrimaria.Reg))
                        {
                            MessageBox.Show("No se puede insertar el registro por que ya existe una Clave Primaria con el mismo valor");
                        }
                        else
                        {
                            auxTab.Registros.Add(r);
                            auxTab.CPrimarias.Add(ClavePrimaria.Reg);
                            auxTab.BandReg = true;
                        }
                    }
                    else
                    {
                        auxTab.Registros.Add(r);
                        auxTab.BandReg = true;
                    }
                    auxTab.ActualizaTabla();
                    actualizaDataGridRegistros();
                }
                else
                {
                    MessageBox.Show("No se puede insertar el registro por que no se está respetando la integridad de los datos");
                }
            }
        }