protected void btnModificar_Click(object sender, EventArgs e)
        {
            try
            {
                //toma de datos de semestre
                Semestre s = new Semestre();
                s.Numero    = int.Parse(txtNroSemestre.Text);
                s.Año       = int.Parse(txtAñoSemestre.Text);
                s.Fk_idTsem = int.Parse(ddlTipoSemestre.SelectedValue);
                //Toma de datos docentes
                Docente docPEP = new Docente();
                docPEP.RutDoc = ddlDocentePEP.SelectedValue;
                Docente docGPI = new Docente();
                docGPI.RutDoc = ddlDocenteGPI.SelectedValue;



                //toma de datos de grupo
                Grupo gp = new Grupo();
                gp.Nombre = txtNombreGrupo.Text;
                gp.Estado = 1;
                //toma de datos alumnoDBA
                Alumno aldba    = new Alumno();
                Alumno alprogra = new Alumno();
                Alumno aljefe   = new Alumno();

                aldba.RutAlumn = txtRutDBA.Text;
                aldba.Nombre   = txtNombreDBA.Text;
                if (dueñoDba.Checked)
                {
                    aldba.DueñoIdea = 1;
                }
                aldba.Correo   = "AA";
                aldba.Estado   = 1;
                aldba.Fk_idCar = int.Parse(ddlCarrera.SelectedValue);
                aldba.Fk_idRol = 1;
                //para el valor fk_idsem se agrega desde la query
                //para el campof fk_idUs se agrega desde la query

                //INGRESO ALUMNO PROGRA

                alprogra.RutAlumn = txtRutProgra.Text;
                alprogra.Nombre   = txtNomProgra.Text;
                if (dueñoProgra.Checked)
                {
                    alprogra.DueñoIdea = 1;
                }
                alprogra.Correo   = "AA";
                alprogra.Estado   = 1;
                alprogra.Fk_idCar = int.Parse(ddlCarrera.SelectedValue);
                alprogra.Fk_idRol = 3;
                //para el valor fk_idsem se agrega desde la query
                //para el campof fk_idUs se agrega desde la query

                //INGRESO ALUMNO JEFE

                aljefe.RutAlumn = txtRutJefe.Text;
                aljefe.Nombre   = txtNombreJEfe.Text;
                if (dueñoJefe.Checked)
                {
                    aljefe.DueñoIdea = 1;
                }
                aljefe.Correo   = "AA";
                aljefe.Estado   = 1;
                aljefe.Fk_idCar = int.Parse(ddlCarrera.SelectedValue);
                aljefe.Fk_idRol = 2;
                //para el valor fk_idsem se agrega desde la query
                //para el campof fk_idUs se agrega desde la query


                //toma de datos tabla proyecto

                Proyecto p = new Proyecto();
                p.Nombre = txtNombre_Proyecto.Text;
                //Toma de tipo de desarrollo

                if (rdMovil.Checked)
                {
                    p.Fk_idDe = 1;
                }
                else if (rdWeb.Checked)
                {
                    p.Fk_idDe = 2;
                }
                else if (rdArduino.Checked)
                {
                    p.Fk_idDe = 3;
                }
                else if (rdclienteServidor.Checked)
                {
                    p.Fk_idDe = 4;
                }
                //Toma de tipo de negocio

                if (rdEmpren.Checked)
                {
                    p.Fk_idTneg = 1;
                }
                else if (rdVincula.Checked)
                {
                    p.Fk_idTneg = 2;
                }

                //toma de sucursal
                p.Fk_idSuc = int.Parse(ddlsucursal.SelectedValue);
                //toma de datos Descrpproyecto
                DescrpProyecto des = new DescrpProyecto();
                des.Link               = txtLinkPitch.Text;
                des.Identificacion     = txtIdentificacion.Text;
                des.Origen             = txtOrigen.Text;
                des.Afectados          = txtAfectados.Text;
                des.Justificacion      = txtJustificacion.Text;
                des.Propuesta_solucion = txtPropuesta.Text;
                des.Definiciones       = txtDefiniciones.Text;
                des.Estado             = 0;

                //guardado de imagen

                if (fuDiagrama.HasFile)
                {
                    try
                    {
                        int    tamanio        = fuDiagrama.PostedFile.ContentLength;
                        byte[] ImagenOriginal = new byte[tamanio];
                        fuDiagrama.PostedFile.InputStream.Read(ImagenOriginal, 0, tamanio);
                        Bitmap ImagenOriginalBinaria = new Bitmap(fuDiagrama.PostedFile.InputStream);
                        string ImagenDataURL64       = "data:image/jpg;base64," + Convert.ToBase64String(ImagenOriginal);
                        des.Diagrama_func = ImagenOriginal;
                    }
                    catch (Exception exe)
                    {
                        Response.Write("<script language=javascript>alert('Error al ingresar la imagen: " + exe.Message + "');</script>");
                    }
                }
                else
                {
                    des.Diagrama_func = new byte[0];
                }



                //toma de innovacion
                TipoInnovacion tp = new TipoInnovacion();

                if (rdBeacon.Checked)
                {
                    tp.IdTinno = 1;
                }
                else if (rdDron.Checked)
                {
                    tp.IdTinno = 2;
                }
                else if (rdRobotica.Checked)
                {
                    tp.IdTinno = 3;
                }
                else if (rdInternetDeLasCosas.Checked)
                {
                    tp.IdTinno = 4;
                }
                else if (rdLentesVr.Checked)
                {
                    tp.IdTinno = 5;
                }
                else if (rdOtro.Checked)
                {
                    tp.IdTinno = 6;
                    tp.Tipo    = txtOtro.Text;
                }
                else if (rdDomotica.Checked)
                {
                    tp.IdTinno = 7;
                }
                //TOMA TIPO DE INOVACION NEGOCIO

                if (cbWebPay.Checked)
                {
                    p.Fk_idTin = 1;
                }
                else if (cbMigracion.Checked)
                {
                    p.Fk_idTin = 2;
                }
                else if (cbIntegraOtroSis.Checked)
                {
                    p.Fk_idTin = 3;
                }



                //Modificar datos



                if (Datos.ModificarFicha(s, gp, p, aldba, alprogra, aljefe, des, tp, docPEP, docGPI, folio))
                {
                    Response.Write("<script language=javascript>alert('Dato Modificado');</script>");
                }
                else
                {
                    Response.Write("<script language=javascript>alert('Dato NO Ingresado');</script>");
                }
            }
            catch (Exception ex)
            {
                Response.Write("<script language=javascript>alert('Error:" + ex.Message + "');</script>");
            }
        }
        public bool InsertarFicha(Semestre sem, Grupo grupo, Proyecto p, Alumno Aldba, Alumno AlPro, Alumno alJefe, DescrpProyecto des, TipoInnovacion ti, Docente docPEP, Docente docGPI, TipoInnovacionNegocio tin)
        {
            bool estado = false;

            if (p.Nombre.Length > 0)
            {
                //ingreso a tabla semestre

                string insert1 = "insert into Semestre(numero,año,fk_idTSem) values(" + sem.Numero + "," + sem.Año + "," + sem.Fk_idTsem + ");";
                ejecutar(insert1);
                //ingreso a tabla grupo
                string insert2 = "insert into grupo(nombre,estado) values('" + grupo.Nombre + "'," + 1 + ");";
                ejecutar(insert2);
                //ingreso a tabla proyecto
                string insert3 = "insert into Proyecto(nombre,fk_idDe,fk_idTneg,fk_idSuc,fk_idSem,fk_idGru,fk_idTin)" +
                                 " values('" + p.Nombre + "'," + p.Fk_idDe + "," + p.Fk_idTneg + "," + p.Fk_idSuc + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),(select idGru from grupo where nombre='" + grupo.Nombre + "')," + tin.IdTin + ");";
                ejecutar(insert3);

                //ingresu a alumnos
                //INGRESO DBA
                string insertDBA = "insert into alumno values('" + Aldba.RutAlumn + "','" + Aldba.Nombre + "'," + Aldba.DueñoIdea + ",'" + Aldba.Correo + "'," + Aldba.Estado + "," + Aldba.Fk_idCar + "," + Aldba.Fk_idRol + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),'" + Aldba.RutAlumn + "');";
                ejecutar(insertDBA);
                //INGRESO PROGRAMADOR
                string insertpro = "insert into alumno values('" + AlPro.RutAlumn + "','" + AlPro.Nombre + "'," + AlPro.DueñoIdea + ",'" + AlPro.Correo + "'," + AlPro.Estado + "," + AlPro.Fk_idCar + "," + AlPro.Fk_idRol + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),'" + AlPro.RutAlumn + "');";
                ejecutar(insertpro);
                //INGRESO JEFE
                string insertJefe = "insert into alumno values('" + alJefe.RutAlumn + "','" + alJefe.Nombre + "'," + alJefe.DueñoIdea + ",'" + alJefe.Correo + "'," + alJefe.Estado + "," + alJefe.Fk_idCar + "," + alJefe.Fk_idRol + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),'" + alJefe.RutAlumn + "');";
                ejecutar(insertJefe);

                //INGRESO TABLA ALUMNO-GRUPO
                string insertAlumnoGrupoDBA = "insert into alumno_grupo values('" + Aldba.RutAlumn + "',(select idGru from grupo where nombre='" + grupo.Nombre + "'));";
                ejecutar(insertAlumnoGrupoDBA);
                string insertAlumnoGrupoPROGRA = "insert into alumno_grupo values('" + AlPro.RutAlumn + "',(select idGru from grupo where nombre='" + grupo.Nombre + "'));";
                ejecutar(insertAlumnoGrupoPROGRA);
                string insertAlumnoGrupoJEFE = "insert into alumno_grupo values('" + alJefe.RutAlumn + "',(select idGru from grupo where nombre='" + grupo.Nombre + "'));";
                ejecutar(insertAlumnoGrupoJEFE);

                //INGRESO DESCRIPCION PROYECTO
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "insert into descrpProyecto(link,identificacion,origen,afectados,justificacion,propuesta_solucion,diagrama_func_,estado,fk_folio) values('" + des.Link + "','" + des.Identificacion + "','" + des.Origen + "','" + des.Afectados + "','" + des.Justificacion + "','" + des.Propuesta_solucion + "',@diagrama,1,(select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')));";
                cmd.Parameters.Add("@diagrama", SqlDbType.Image).Value = des.Diagrama_func;
                cmd.CommandType = CommandType.Text;
                cmd.Connection  = c.con;
                c.con.Open();
                cmd.ExecuteNonQuery();
                c.con.Close();

                //INGRESO TIPO INNOVACION
                if (ti.IdTinno >= 1 && ti.IdTinno <= 7)
                {
                    if (ti.IdTinno == 6)
                    {
                        string inserNuevoTipoInnovacion = "insert into Tecnologias (nombre_tecnologia,fk_idTinno) values('" + ti.Tipo + "'," + ti.IdTinno + ");";
                        ejecutar(inserNuevoTipoInnovacion);

                        string insertTp = "insert into detInnovacion (fk_folio,fk_idTinno) values((select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')),(SELECT TipoInnovacion.idTInno FROM Tecnologias INNER JOIN TipoInnovacion ON Tecnologias.fk_idTInno = TipoInnovacion.idTInno where Tecnologias.nombre_tecnologia='" + ti.Tipo + "'));";
                        ejecutar(insertTp);
                    }
                    else
                    {
                        string insertTp = "insert into detInnovacion (fk_folio,fk_idTinno) values((select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "'))," + ti.IdTinno + ");";
                        ejecutar(insertTp);
                    }
                }



                //ingreso Definiciones
                string insertdefproc = "insert into Definiciones(definicion) values('" + des.Definiciones + "')";
                ejecutar(insertdefproc);

                //ingreso a DefProyecto
                string insertDefProyecto = "insert into defproyecto(fk_folio,fk_idDef) values((select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')),(select idDef from definiciones where definicion='" + des.Definiciones + "'));";
                ejecutar(insertDefProyecto);
                //INGRESO DOCENTES
                //INGRESO PEP
                string insertPEP = "insert into DocentesPro(Docente_rutDoc,Proyecto_folio) values('" + docPEP.RutDoc + "',(select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')))";
                ejecutar(insertPEP);
                //INGRESO GPI
                string insertGPI = "insert into DocentesPro(Docente_rutDoc,Proyecto_folio) values('" + docGPI.RutDoc + "',(select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')))";
                ejecutar(insertGPI);
                estado = true;
            }
            return(estado);
        }
        public bool InsertarFicha(Semestre sem, Grupo grupo, Proyecto p, Alumno Aldba, Alumno AlPro, Alumno alJefe, DescrpProyecto des, TipoInnovacion ti, string def)
        {
            bool estado = false;

            if (p.Nombre.Length > 0)
            {
                try
                {
                    //ingreso a tabla semestre

                    string insert1 = "insert into Semestre(numero,año,fk_idTSem) values(" + sem.Numero + "," + sem.Año + "," + sem.Fk_idTsem + ");";
                    ejecutar(insert1);
                    //ingreso a tabla grupo
                    string insert2 = "insert into grupo(nombre,estado) values('" + grupo.Nombre + "'," + 1 + ");";
                    ejecutar(insert2);
                    //ingreso a tabla proyecto
                    string insert3 = "insert into Proyecto(nombre,fk_idDe,fk_idTneg,fk_idSuc,fk_idSem,fk_idGru)" +
                                     " values('" + p.Nombre + "'," + p.Fk_idDe + "," + p.Fk_idTneg + "," + p.Fk_idSuc + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),(select idGru from grupo where nombre='" + grupo.Nombre + "'));";
                    ejecutar(insert3);
                    //ingresu a alumnos
                    //INGRESO DBA
                    string insertDBA = "insert into alumno values('" + Aldba.RutAlumn + "','" + Aldba.Nombre + "'," + Aldba.DueñoIdea + ",'" + Aldba.Correo + "'," + Aldba.Estado + "," + Aldba.Fk_idCar + "," + Aldba.Fk_idRol + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),'" + Aldba.RutAlumn + "');";
                    ejecutar(insertDBA);
                    //INGRESO PROGRAMADOR
                    string insertpro = "insert into alumno values('" + AlPro.RutAlumn + "','" + AlPro.Nombre + "'," + AlPro.DueñoIdea + ",'" + AlPro.Correo + "'," + AlPro.Estado + "," + AlPro.Fk_idCar + "," + AlPro.Fk_idRol + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),'" + AlPro.RutAlumn + "');";
                    ejecutar(insertpro);
                    //INGRESO JEFE
                    string insertJefe = "insert into alumno values('" + alJefe.RutAlumn + "','" + alJefe.Nombre + "'," + alJefe.DueñoIdea + ",'" + alJefe.Correo + "'," + alJefe.Estado + "," + alJefe.Fk_idCar + "," + alJefe.Fk_idRol + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),'" + alJefe.RutAlumn + "');";
                    ejecutar(insertJefe);

                    //INGRESO TABLA ALUMNO-GRUPO
                    string insertAlumnoGrupoDBA = "insert into alumno_grupo values('" + Aldba.RutAlumn + "',(select idGru from grupo where nombre='" + grupo.Nombre + "'));";
                    ejecutar(insertAlumnoGrupoDBA);
                    string insertAlumnoGrupoPROGRA = "insert into alumno_grupo values('" + AlPro.RutAlumn + "',(select idGru from grupo where nombre='" + grupo.Nombre + "'));";
                    ejecutar(insertAlumnoGrupoPROGRA);
                    string insertAlumnoGrupoJEFE = "insert into alumno_grupo values('" + alJefe.RutAlumn + "',(select idGru from grupo where nombre='" + grupo.Nombre + "'));";
                    ejecutar(insertAlumnoGrupoJEFE);

                    //INGRESO DESCRIPCION PROYECTO
                    string insertDescproyecto = "insert into descrpProyecto(link,identificacion,origen,afectados,justificacion,propuesta_solucion,diagrama_func_,estado,fk_folio) values('" + des.Link + "','" + des.Identificacion + "','" + des.Origen + "','" + des.Afectados + "','" + des.Justificacion + "','" + des.Propuesta_solucion + "','" + des.Diagrama_func + "'," + des.Estado + ",(select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')));";
                    ejecutar(insertDescproyecto);

                    //INGRESO TIPO INNOVACION
                    string insertTp = "insert into detInnovacion (fk_folio,fk_idTinno) values((select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "'))," + ti.IdTinno + ");";
                    ejecutar(insertTp);

                    //ingreso Definiciones
                    string insertdefproc = "insert into Definiciones(definicion) values('" + def + "')";
                    ejecutar(insertdefproc);

                    //ingreso a DefProyecto
                    string insertDefProyecto = "insert into defproyecto(fk_folio,fk_idDef) values((select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')),(select idDef from definiciones where definicion='" + def + "'));";
                    ejecutar(insertDefProyecto);
                    estado = true;
                }
                catch (Exception e)
                {
                    throw new Exception("ERROR: " + e.Message);
                }
            }
            return(estado);
        }
        public static bool ModificarFicha(Semestre sem, Grupo grupo, Proyecto p, Alumno Aldba, Alumno AlPro, Alumno alJefe, DescrpProyecto des, TipoInnovacion ti, Docente docPEP, Docente docGPI, int folio)
        {
            bool estado = false;

            if (p.Nombre.Length > 0)
            {
                //Modificacion semestre
                SqlConnection con = new SqlConnection("Data Source=localhost;" + "Initial Catalog=DB_M1;" + "Integrated Security=True");
                con.Open();
                SqlCommand cmdSem = new SqlCommand("UPDATE Semestre SET numero =" + sem.Numero + ", Año =" + sem.Año + ", fk_idTSem =" + sem.Fk_idTsem + " FROM Semestre INNER JOIN Proyecto ON Semestre.idSem = Proyecto.fk_idSem WHERE Proyecto.folio=" + folio + ";", con);
                cmdSem.ExecuteNonQuery();

                //modificarcion docentes
                //PEP
                SqlCommand updateDocPEP = new SqlCommand("UPDATE DocentesPro SET Docente_rutDoc ='" + docPEP.RutDoc + "' FROM Asignatura INNER JOIN asig_seccion ON Asignatura.idAsig = asig_seccion.fk_idAsig INNER JOIN Docente ON asig_seccion.fk_rutDoc = Docente.rutDoc INNER JOIN DocentesPro INNER JOIN Proyecto ON DocentesPro.Proyecto_folio = Proyecto.folio ON Docente.rutDoc = DocentesPro.Docente_rutDoc where proyecto.folio=" + folio + " and Asignatura.nombre='PREPARACION Y EVALUACION DE PROYECTOS DE TI';", con);
                updateDocPEP.ExecuteNonQuery();
                //GPI
                SqlCommand updateDocGPI = new SqlCommand("UPDATE DocentesPro SET Docente_rutDoc ='" + docGPI.RutDoc + "' FROM Asignatura INNER JOIN asig_seccion ON Asignatura.idAsig = asig_seccion.fk_idAsig INNER JOIN Docente ON asig_seccion.fk_rutDoc = Docente.rutDoc INNER JOIN DocentesPro INNER JOIN Proyecto ON DocentesPro.Proyecto_folio = Proyecto.folio ON Docente.rutDoc = DocentesPro.Docente_rutDoc where proyecto.folio=" + folio + " and Asignatura.nombre='GESTION DE PROYECTOS INFORMATICOS';", con);
                updateDocGPI.ExecuteNonQuery();
                //Modificacion Grupo
                SqlCommand cmdGrupoUpdate = new SqlCommand("UPDATE Grupo SET nombre ='" + grupo.Nombre + "' FROM Grupo INNER JOIN Proyecto ON Grupo.idGru = Proyecto.fk_idGru WHERE Proyecto.folio=" + folio + ";", con);
                cmdGrupoUpdate.ExecuteNonQuery();

                //ingreso a tabla proyecto
                //Actualizar Tipo de innovacion
                if (ti.IdTinno >= 1 && ti.IdTinno <= 7)
                {
                    if (ti.IdTinno == 6)
                    {
                        //Con esta query vamos a ver si ya existe algun Tipo de Innovacion de tipo otro agregado
                        SqlCommand     selectDetInnoOtro = new SqlCommand("SELECT Tecnologias.nombre_tecnologia FROM Tecnologias INNER JOIN TipoInnovacion ON Tecnologias.fk_idTInno = TipoInnovacion.idTInno INNER JOIN DetInnovacion ON TipoInnovacion.idTInno = DetInnovacion.fk_idTInno INNER JOIN Proyecto ON DetInnovacion.fk_folio = Proyecto.folio WHERE Proyecto.folio=" + folio + ";", con);
                        SqlDataAdapter DaTi = new SqlDataAdapter(selectDetInnoOtro);
                        DataTable      DtTi = new DataTable();
                        DaTi.Fill(DtTi);
                        //Con esta validacion vamos a ver si ya existe algun Tipo de Innovacion de tipo otro agregado

                        if (DtTi.Rows.Count == 1)
                        {
                            //SI SOLO hay un resultado, ejecutara la query
                            SqlCommand updateTipoOtro = new SqlCommand("UPDATE Tecnologias SET nombre_tecnologia ='" + ti.Tipo + "' FROM Tecnologias INNER JOIN TipoInnovacion ON Tecnologias.fk_idTInno = TipoInnovacion.idTInno INNER JOIN DetInnovacion ON TipoInnovacion.idTInno = DetInnovacion.fk_idTInno INNER JOIN Proyecto ON DetInnovacion.fk_folio = Proyecto.folio where Proyecto.folio=" + folio + ";", con);
                            updateTipoOtro.ExecuteNonQuery();
                        }
                        else if (DtTi.Rows.Count == 0)
                        {
                            //SI NO EXISTE UN REGISTRO DE TIPO OTRO, AGREGARMOS UN NUEVO DE TIPO OTRO y modificamos la tabla DetInnovacion
                            SqlCommand updateTinnoN = new SqlCommand("UPDATE DetInnovacion SET fk_idTInno =" + ti.IdTinno + " FROM DetInnovacion INNER JOIN Proyecto ON DetInnovacion.fk_folio = Proyecto.folio INNER JOIN TipoInnovacion ON DetInnovacion.fk_idTInno = TipoInnovacion.idTInno where Proyecto.folio=" + folio + ";", con);
                            updateTinnoN.ExecuteNonQuery();
                            SqlCommand insertOtro = new SqlCommand("insert into Tecnologias(nombre_tecnologia,fk_idTinno) values('" + ti.Tipo + "',6)", con);
                            insertOtro.ExecuteNonQuery();
                        }
                    }
                    else
                    {
                        //si la ficha tenia un tipo de innovacion de tipo otro, eliminara ese tipo otro, en caso que no, no lo hara.
                        SqlCommand cmdDeleteOtros = new SqlCommand("DELETE FROM Tecnologias FROM Tecnologias INNER JOIN TipoInnovacion ON Tecnologias.fk_idTInno = TipoInnovacion.idTInno INNER JOIN DetInnovacion ON TipoInnovacion.idTInno = DetInnovacion.fk_idTInno INNER JOIN Proyecto ON DetInnovacion.fk_folio = Proyecto.folio WHERE Proyecto.folio = " + folio + ";", con);
                        cmdDeleteOtros.ExecuteNonQuery();
                        SqlCommand updateTinno = new SqlCommand("UPDATE DetInnovacion SET fk_idTInno =" + ti.IdTinno + " FROM DetInnovacion INNER JOIN Proyecto ON DetInnovacion.fk_folio = Proyecto.folio INNER JOIN TipoInnovacion ON DetInnovacion.fk_idTInno = TipoInnovacion.idTInno where Proyecto.folio=" + folio + ";", con);
                        updateTinno.ExecuteNonQuery();
                    }
                }

                SqlCommand cmdProyectoUpdate = new SqlCommand("UPDATE Proyecto SET nombre='" + p.Nombre + "',fk_idDE =" + p.Fk_idDe + ", fk_idTNeg =" + p.Fk_idTneg + ", fk_idSuc =" + p.Fk_idSuc + ", fk_idTin =" + p.Fk_idTin + " FROM Proyecto INNER JOIN Semestre ON Proyecto.fk_idSem = Semestre.idSem INNER JOIN Grupo ON Proyecto.fk_idGru = Grupo.idGru WHERE Proyecto.folio=" + folio + "", con);
                cmdProyectoUpdate.ExecuteNonQuery();
                //modificacion a alumnos
                //DBA
                SqlCommand updateDBANombre = new SqlCommand("UPDATE Alumno SET nombre ='" + Aldba.Nombre + "',fk_idRol=1 FROM Alumno INNER JOIN alumno_grupo ON Alumno.rutAlum = alumno_grupo.fk_rutAlum INNER JOIN Grupo ON alumno_grupo.fk_idGru = Grupo.idGru INNER JOIN Proyecto ON Grupo.idGru = Proyecto.fk_idGru INNER JOIN Rol ON Alumno.fk_idRol = Rol.idRol Where proyecto.Folio=" + folio + " and rutAlum='" + Aldba.RutAlumn + "';", con);
                updateDBANombre.ExecuteNonQuery();
                //PROGRAMADOR
                SqlCommand updateProgramadorNombre = new SqlCommand("UPDATE Alumno SET nombre ='" + AlPro.Nombre + "',fk_idRol=3 FROM Alumno INNER JOIN alumno_grupo ON Alumno.rutAlum = alumno_grupo.fk_rutAlum INNER JOIN Grupo ON alumno_grupo.fk_idGru = Grupo.idGru INNER JOIN Proyecto ON Grupo.idGru = Proyecto.fk_idGru INNER JOIN Rol ON Alumno.fk_idRol = Rol.idRol Where proyecto.Folio=" + folio + " and rutAlum='" + AlPro.RutAlumn + "';", con);
                updateProgramadorNombre.ExecuteNonQuery();
                //JEFE PROYECTO
                SqlCommand updateJefeProyecto = new SqlCommand("UPDATE Alumno SET nombre ='" + alJefe.Nombre + "',fk_idRol=2 FROM Alumno INNER JOIN alumno_grupo ON Alumno.rutAlum = alumno_grupo.fk_rutAlum INNER JOIN Grupo ON alumno_grupo.fk_idGru = Grupo.idGru INNER JOIN Proyecto ON Grupo.idGru = Proyecto.fk_idGru INNER JOIN Rol ON Alumno.fk_idRol = Rol.idRol Where proyecto.Folio=" + folio + " and rutAlum='" + alJefe.RutAlumn + "';", con);
                updateJefeProyecto.ExecuteNonQuery();

                //INGRESO DESCRIPCION PROYECTO
                if (des.Diagrama_func != new byte[0])
                {
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandText = "UPDATE DescrpProyecto SET link ='" + des.Link + "', identificacion ='" + des.Identificacion + "', origen ='" + des.Origen + "', afectados ='" + des.Afectados + "', justificacion ='" + des.Justificacion + "', propuesta_solucion ='" + des.Propuesta_solucion + "' FROM DescrpProyecto INNER JOIN Proyecto ON DescrpProyecto.fk_folio = Proyecto.folio where Proyecto.folio=" + folio + ";";
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection  = con;
                    cmd.ExecuteNonQuery();
                }
                else
                {
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandText = "UPDATE DescrpProyecto SET link ='" + des.Link + "', identificacion ='" + des.Identificacion + "', origen ='" + des.Origen + "', afectados ='" + des.Afectados + "', justificacion ='" + des.Justificacion + "', propuesta_solucion ='" + des.Propuesta_solucion + "', diagrama_func_ =@diagrama FROM DescrpProyecto INNER JOIN Proyecto ON DescrpProyecto.fk_folio = Proyecto.folio where Proyecto.folio=" + folio + ";";
                    cmd.Parameters.Add("@diagrama", SqlDbType.Image).Value = des.Diagrama_func;
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection  = con;
                    cmd.ExecuteNonQuery();
                }


                //ingreso Definiciones
                SqlCommand updateDefin = new SqlCommand("UPDATE Definiciones SET definicion ='" + des.Definiciones + "' FROM Definiciones INNER JOIN DefProyecto ON Definiciones.idDef = DefProyecto.fk_idDef INNER JOIN Proyecto ON DefProyecto.fk_folio = Proyecto.folio where Proyecto.folio=" + folio + ";", con);
                updateDefin.ExecuteNonQuery();
                estado = true;
                con.Close();
            }
            return(estado);
        }