public void LlenarData(DataGridView da, NGM pr)
        {
            DataGridView materias = da as DataGridView;

            materias.Rows.Clear();
            materias.Columns.Clear();
            materias.Columns.Add("Materia", "Materia");
            materias.Columns.Add("Grado", "Grado");
            materias.Columns.Add("Seccion", "Seccion");
            SqlCommand ma;
            SqlCommand gra;
            SqlCommand secc;



            if (pr.Grado.Count > 0)
            {
                for (int i = 0; i < pr.Grado.Count; i++)
                {
                    materias.Rows.Add();
                    string gr  = "SELECT Grado FROM GRADO WHERE IdGrado= " + pr.Grado[i];
                    string mat = "SELECT * FROM MATERIA WHERE IdMateria=" + pr.Materia[i];
                    string sec = "SELECT Seccion FROM SECCION WHERE IdSeccion= " + pr.Seccion[i];
                    ma   = new SqlCommand(mat, conn);
                    gra  = new SqlCommand(gr, conn);
                    secc = new SqlCommand(sec, conn);
                    try
                    {
                        conn.Open();
                        reader = ma.ExecuteReader();

                        while (reader.Read())
                        {
                            materias[0, i].Value = reader["Materia"].ToString().Trim();
                        }
                        reader.Close();
                        reader = gra.ExecuteReader();
                        while (reader.Read())
                        {
                            materias[1, i].Value = reader["Grado"].ToString().Trim();
                        }
                        reader.Close();
                        reader = secc.ExecuteReader();

                        while (reader.Read())
                        {
                            materias[2, i].Value = reader["Seccion"].ToString().Trim();
                        }

                        conn.Close();
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Error recuperando materias", "Error", MessageBoxButtons.OK,
                                        MessageBoxIcon.Error);
                        conn.Close();
                    }
                }
            }
        }
        public DocenteR(F2.PropiedadMaestro n, NGM ma)
        {
            InitializeComponent();
            maestro  = n as F2.PropiedadMaestro;
            materias = ma as NGM;
            LlenarCampos();
            mtd.LlenarData(DGV_g_m, ma);
            RecuperarProfesores g = new RecuperarProfesores();

            this.Width  = g.Width;
            this.Height = g.Height;
        }
        internal void LlenarData2()
        {
            int c = ProdTraslado.MR.Count;
            NGM actual;

            if (c > 0)
            {
                for (int i = 0; i < c; i++)
                {
                    actual = new NGM();
                    actual = ProdTraslado.MR[i];
                    SqlConnection conn = Conexion.Cnn();


                    for (int j = 0; j < actual.Grado.Count; j++)
                    {
                        SqlCommand cmm = new SqlCommand("NGMRep", conn);
                        cmm.CommandType = CommandType.StoredProcedure;
                        cmm.Parameters.AddWithValue("@materia", actual.Materia[j]);
                        cmm.Parameters.AddWithValue("@grado", actual.Grado[j]);
                        cmm.Parameters.AddWithValue("@seccion", actual.Seccion[j]);
                        SqlDataReader reader;
                        reader = cmm.ExecuteReader();
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                string maestro = reader["Nombre"].ToString().Trim();
                                string materia = reader["Materia"].ToString().Trim();
                                string grado   = reader["Grado"].ToString().Trim();
                                string seccion = reader["Seccion"].ToString().Trim();
                                dataGridView2.Rows.Add(maestro, materia, grado, seccion, "Ya ha sido asignada");
                            }
                        }
                        else
                        {
                            reader.Close();
                        }
                    }

                    conn.Close();
                }
            }
            else
            {
                textBox2.Visible = true;
            }
        }
        internal void LlenarMaterias(string IdMaestro, string año)
        {
            NGM nu;

            try
            {
                nu = new NGM();

                cmm             = new SqlCommand("GetNGM", conn);
                cmm.CommandType = CommandType.StoredProcedure;
                cmm.Parameters.AddWithValue("@ano", int.Parse(año));
                cmm.Parameters.AddWithValue("@maestro", IdMaestro);
                conn.Open();

                nu.Maestro = IdMaestro;
                nu.Año     = año;

                reader = cmm.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        int grado, seccion, materia;
                        materia = int.Parse(reader["Materia"].ToString().Trim());
                        seccion = int.Parse(reader["Seccion"].ToString().Trim());
                        grado   = int.Parse(reader["Grado"].ToString().Trim());
                        nu.Grado.Add(grado);
                        nu.Seccion.Add(seccion);
                        nu.Materia.Add(materia);
                        nu.Estado.Add(1);
                        pNGM.Add(nu);
                    }
                }
                else
                {
                    pNGM.Add(nu);
                }


                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                conn.Close();
            }
        }
        public void RecuperarNGM(NGM n)
        {
            SqlConnection conn     = Conexion.Cnn();
            NGM           auxiliar = n as NGM;

            try
            {
                if (auxiliar.Grado.Count > 0)
                {
                    for (int j = 0; j < auxiliar.Grado.Count; j++)
                    {
                        string        cadena = "SELECT * FROM NGM WHERE Materia=" + auxiliar.Materia[j] + " AND Grado= " + auxiliar.Grado[j] + " AND Seccion= " + auxiliar.Seccion[j];
                        SqlCommand    cmm    = new SqlCommand(cadena, conn);
                        SqlDataReader reader = null;
                        reader = cmm.ExecuteReader();
                        if (reader.HasRows)
                        {
                            MR.Add(auxiliar);
                            return;
                        }
                        reader.Close();

                        cmm             = new SqlCommand("NGMRetorno", conn);
                        cmm.CommandType = CommandType.StoredProcedure;
                        cmm.Parameters.AddWithValue("@IdMaestro", auxiliar.Maestro);
                        cmm.Parameters.AddWithValue("@Grado", auxiliar.Grado[j]);
                        cmm.Parameters.AddWithValue("@Materia", auxiliar.Materia[j]);
                        cmm.Parameters.AddWithValue("@seccion", auxiliar.Seccion[j]);
                        cmm.Parameters.AddWithValue("@estado", 1);
                        cmm.ExecuteNonQuery();
                    }
                }



                conn.Close();
            }

            catch (Exception ex)
            {
                conn.Close();
                MessageBox.Show(ex.Message, "Error retornando NGM", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void BtnRecuper_Click(object sender, EventArgs e)
        {
            string profSelected;


            foreach (string item in listBox2.Items)
            {
                profSelected = ProdTraslado.rer[item].ToString();
                F2.PropiedadMaestro temp = ProdTraslado.profes[int.Parse(profSelected)];
                NGM temp1 = ProdTraslado.pNGM[int.Parse(profSelected)];
                mtd.Recuperar(temp);
                mtd.RecuperarNGM(temp1);
            }

            RPro fh = new RPro();

            this.Visible = false;
            fh.ShowDialog();
            this.Close();
        }