jueves, 3 de noviembre de 2016

Práctica 16. Alumnos y Calificaciones

Práctica 16. Alumnos y Calificaciones

Objetivo:
Diseñar una aplicación en C# que vincule con una base de datos de Access (con las tablas alumnos y calificaciones relacionadas).
La aplicación deberá insertar, consultar, actualizar y eliminar registros en la base de datos de Access.



Código:

namespace Practica_16
{
    class Alumnos
    {
        public string ncuenta;
        public string Nombre;
        public string Apellidop;
        public string Apellidom;
        public int Edad;
        public int Semestre;

        public Alumnos()
        {
        }

        public Alumnos(string ncuenta, string Nombre, string Apellidop, string Apellidom,
            int Edad, int Semestre)
        {
            this.ncuenta = ncuenta;
            this.Nombre = Nombre;
            this.Apellidop = Apellidop;
            this.Apellidom = Apellidom;
            this.Edad = Edad;
            this.Semestre = Semestre;
        }

    }
}


namespace Practica_16
{
    class Database
    {
        private string StrConexion;
        private OleDbConnection Conexion;
        private OleDbDataAdapter Adapter;
        private DataSet miDataSet = new DataSet();

        public void IniciarConexion(string DataBase)
        {
            //Crear la cadena de conexion para Office 2010
            StrConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DataBase;
            //Objeto conexion
            Conexion = new OleDbConnection(StrConexion);

        }
        public int ejecutar_sql(string sql)
        {
            //insertar en la BD
            int i = 0;
            try
            {
                Conexion.Open();
                OleDbCommand cmd = new OleDbCommand(sql, Conexion);
                i = cmd.ExecuteNonQuery();
            }
            catch
            {
                i = -1;

            }
            return i;
        }
        public DataTable consultar(string sql, string tabla)
        {
            Adapter = new OleDbDataAdapter(sql, Conexion);
            //crear data table 
            DataTable dt = new DataTable();
            //rellenar el adaptador con los datos en memoria
            Adapter.Fill(dt);
            return dt;
        }
    }
}


namespace Practica_16
{
    public partial class Form1 : Form
    {
        Database DB = new Database();
        String sql;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            DB.IniciarConexion("../../prueba.mdb");
            //crear el miembro de datos del DataGridView
            dataGridView1.DataMember = "Alumnos";
        }

        private Alumnos asig_alum_text()
        {
            string ncuenta, Nombre, Apellidop, Apellidom;
            int edad = 0, semestre;
            ncuenta = txtCuenta.Text;
            Nombre = txtNombre.Text;
            Apellidop = txtApellidoP.Text;
            Apellidom=txtApellidoM.Text;
            try
            {
                edad = Convert.ToInt32(txtEdad.Text);
            }
            catch
            {
                MessageBox.Show("Ingrese un valor numerico");
                txtEdad.Focus();
                txtEdad.SelectionStart = 0;
                txtEdad.SelectionLength = txtEdad.TextLength;
            }
            semestre = Convert.ToInt32(txtSemestre.Text);
            Alumnos A = new Alumnos(ncuenta, Nombre, Apellidop, Apellidom, semestre, edad);
            return A;
        }

        private void btnInsertar_Click(object sender, EventArgs e)
        {
            Alumnos a = asig_alum_text();
            sql = "INSERT INTO Alumnos (ncuenta,Nombre,Apellidop,Apellidom,Semestre,Edad)";
            sql+= " VALUES('" + a.ncuenta+"'"+",'"+a.Nombre+"','"+a.Apellidop+"','"+a.Apellidom+"','"+
                a.Semestre+"','"+a.Edad+"')";
            int insert = DB.ejecutar_sql(sql);
            if (insert == 1) //si logro la insercion limpio el formulario
            {
                MessageBox.Show("Se  insertaron correctamente sus datos");
                /*foreach (Control txt in this.Controls)
                {
                    if (txt.GetType() == typeof(TextBox))
                        txt.Text = "";
                }*/
                txtCuenta.Text = "";
                txtNombre.Text = "";
                txtApellidoM.Text = "";
                txtApellidoP.Text = "";
                txtEdad.Text = "";
                txtSemestre.Text = "";
            }
            else
            {
                MessageBox.Show("Hubo un error al insertar los datos");
            }
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            sql = "SELECT * FROM Alumnos WHERE ncuenta='" + txtNcuenta.Text + "'";
            // Poner los datos al DataGridView
            dataGridView1.DataSource = DB.consultar(sql, "alumnos");

        }

        private void modificarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //Para modificar los datos del alumno
            int renglon = dataGridView1.CurrentCell.RowIndex;
            int ncuenta=Convert.ToInt32(dataGridView1[0,renglon].Value.ToString());
            if (ncuenta != -1)
            {
                txtCuenta.Text = dataGridView1[0, renglon].Value.ToString();
                txtNombre.Text = dataGridView1[1, renglon].Value.ToString();
                txtApellidoP.Text = dataGridView1[2, renglon].Value.ToString();
                txtApellidoM.Text = dataGridView1[3, renglon].Value.ToString();
                txtEdad.Text = dataGridView1[4, renglon].Value.ToString();
                txtSemestre.Text = dataGridView1[5, renglon].Value.ToString();
                btnActualizar.Enabled = true;
            }
        }

        private void eliminarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //Para eliminar un registro
            int renglon = dataGridView1.CurrentCell.RowIndex;
            int ncuenta = Convert.ToInt32(dataGridView1[0, renglon].Value.ToString());
            if (ncuenta != -1)
            {
                if (MessageBox.Show("¿Está seguro que desea eliminar al alumno? " + dataGridView1[1, renglon].Value.ToString(),
                  "Eliminar Registro", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    DB.ejecutar_sql("DELETE FROM alumnos WHERE ncuenta='" + ncuenta + "'");
                dataGridView1.Rows.RemoveAt(renglon);
                txtNcuenta.Text = "";
            }
        }

        private void btnActualizar_Click(object sender, EventArgs e)
        {
            Alumnos a = asig_alum_text();
            sql = "UPDATE alumnos SET nombre='" + a.Nombre + "',";
            sql += "Apellidop='" + a.Apellidop + "',";
            sql += "Apellidom='" + a.Apellidom + "',";
            sql += "Edad='" + a.Edad + "',";
            sql+="Semestre='"+a.Semestre+"'";
            sql+="WHERE ncuenta='"+a.ncuenta+"'";

            int update = DB.ejecutar_sql(sql);
            if (update == 1)
            {
                MessageBox.Show("Se actualizaron correctamente los datos");
                txtCuenta.Text = "";
                txtNombre.Text = "";
                txtApellidoM.Text = "";
                txtApellidoP.Text = "";
                txtEdad.Text = "";
                txtSemestre.Text = "";
            }
            else
            {
                MessageBox.Show("Hubo un error al insertar los datos");
            }
        }
    }
}


No hay comentarios:

Publicar un comentario