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"); } }
//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"); } } }