SISTEMA ABC DUOLINGO


                                     CODIGO DEL SISTEMA ABC DE DUOLINGO                                            


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;// Librerias de acceso a mysql :)

namespace Visual02
{
    public partial class Form1 : Form
    {
        //Variable de coneccion a mysql con los parametros necesarios
        MySqlConnection Con = new MySqlConnection("data source=localhost;user id=root;password=;database=antares;");
        //objeto de ejecucion de consultas
        MySqlCommand C;
        //objeto de acceso local a datos devueltos por consultas
        MySqlDataReader R;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Con.Open();//conectar con la base de datos
            this.Text = Con.ServerVersion.ToString();
            C = new MySqlCommand("select id,castillo,categoria,ciudad from fortaleza", Con);
            R = C.ExecuteReader();
            while (R.Read())
            {
              listBox1.Items.Add(R[0].ToString() + "] " +
                    R[1].ToString() + ' ' + R[2].ToString()
                    + ' ' + R[3].ToString());
            }
            R.Close();
            Con.Close();

        }
        private bool NoExiste()
        {
            bool ok =true;
            Con.Open();//conectar con la base de datos
            this.Text = Con.ServerVersion.ToString();
            string condicion = " castillo='"+A_Castillo.Text+//validar que no exista
                "' and categoria='"+A_Categoria+"' and ciudad='"+A_Ciudad+"'; ";
            C = new MySqlCommand("select id from fortaleza where "+condicion, Con);
            R = C.ExecuteReader();
            if (R.Read())
            {
                ok = false;
            }
            R.Close();
            Con.Close();

            return ok;
        }
        private void Alta()
        {
            Con.Open();//conectar con la base de datos
            //metodo para guardar un registro
            string SQL = "insert into FORTALEZA(castillo, categoria, ciudad,)" +
            " values('" + A_Castillo.Text + "','" +
            A_Categoria.Text + "','" + A_Ciudad.Text + "');";//cadena de valores a insertar
            try
            {
                C = new MySqlCommand(SQL, Con);//preparar comando
                C.ExecuteNonQuery();//ejecutar consulta
                MessageBox.Show("Alta efectuada", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception E)//si algo esta mal, extrar error
            {//mostrar el error al usuario
                MessageBox.Show("Ocurrio el siguiente error:\n" + E.Message);
            }
            Con.Close();
        }
        private bool Baja()
        {
            bool ok = false;
            if (MessageBox.Show("¿Deseas eliminar permanentemente el registro?", "Advertencia",
                MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
            {
            Con.Open();//conectar con la base de datos
            string condicion = " id=" + B_id.Text +"; ";
            C = new MySqlCommand("delete from fortaleza where " + condicion, Con);
            C.ExecuteNonQuery();//NO DEVOLVER RESULTADO SOLO EJECUTAR
            Con.Close();
                ok = true;
            }
            return ok;
        }

        private bool Valida()
        {//validamos que las cajas de texto obligatorias esten llenas
            bool ok = true;//por defecto es valida
            if (A_Castillo.Text == "")//falto poner castillo?
              {
                A_Castillo.Focus();//colocar el cursor
                MessageBox.Show("Falta el Castillo","Informacion",MessageBoxButtons.OK,MessageBoxIcon.Information);
                ok = false;//esto devolvera al final false
              }
            else if (A_Categoria.Text == "")
            {
                A_Categoria.Focus();
                MessageBox.Show("Falta la Categoria", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information);
                ok = false;//esto devolvera al final false
            }
            else if (A_Ciudad.Text == "")
            {
                A_Ciudad.Focus();
                MessageBox.Show("Falta la ciudad", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information);
                ok = false;//esto devolvera al final false
            }
            return ok;//retornamos el estado final de validacion
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //divide y venceras :)
            if (Valida() == true)//se llenaron los campos?
                if (NoExiste() == true)
                    Alta();//efectuar alta
                else
                    MessageBox.Show("Ya existe ese registro", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else
                MessageBox.Show("Faltaban datos", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        private bool ValidaId()
        { 
//validamos que las cajas de texto obligatorias esten llenas
            bool ok = true;//por defecto es valida
            if (B_id.Text == "")//falto poner castillo?
            {
                B_id.Focus();//colocar el cursor
                MessageBox.Show("Falta el id", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                ok = false;//esto devolvera al final false
            }
            return ok;
        }
            private void button2_Click(object sender, EventArgs e)
        {
            //divide y venceras :)
            if (ValidaId() == true)//se llenaron los campos?
                if (NoExiste() == false)
                    if (Baja())//verificamos la baja
                        MessageBox.Show("Se eliminó el registro", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    else
                        MessageBox.Show("El registro sigue intacto, no ha sido eliminado", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                else
                    MessageBox.Show("No existe ese registro", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

        }

        private void Llenar()
        {
            //obtener el id
            string ID = listBox1.SelectedItem.ToString();//obtiene el elemento activo
            ID = ID.Substring(0, ID.IndexOf(']') - 1);//cortar solo el id del elemento
            //consulta para obtener los datos en base al id
           
            Con.Open();//conectar con la base de datos
            this.Text = Con.ServerVersion.ToString();
            string condicion = "id="+ID+"; ";
            C = new MySqlCommand("select id,castillo,categoria,ciudad from fortaleza where " + condicion, Con);
            R = C.ExecuteReader();
            if (R.Read())
            {
                C_Castillo.Text =R[1].ToString();
                C_Categoria.Text = R[2].ToString();
                C_Ciudad.Text = R[3].ToString();
            }
            R.Close();
            Con.Close();          
            C_id.Text = ID;
            B_id.Text = ID;
        }
        private void listBox1_SelectedValueChanged(object sender, EventArgs e)
        {
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBox1.SelectedItem != null)//es necesario saber que hay un elemento activo
                Llenar();//metodo para llenar cajas de texto

        }
    }
}

No hay comentarios.:

Publicar un comentario