jueves, 23 de julio de 2015

Consultas LINQ

//******************************************************************
//Clase Cliente

using System.Data.Linq.Mapping;

namespace _2015_A_13_LINQ
{
    [Table (Name="clientes")]
    public class Cliente
    {
        //sin get ni set para la base de datos
        //se define como publicas para texto plano
        [Column(AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
        public int id;
        [Column]
        public String nombre;
        [Column]
        public int anionacimiento;

        public override string ToString()
        {
            return "ID: "+id+", Nombre: "+nombre+", Año Nacimiento: "+anionacimiento;
        }
    }
}
//*************************************************************
Formulario LINQ_BDD

namespace _2015_A_13_LINQ
{
    public partial class LINQ_BDD : Form
    {
        //Instancia de la Base de datos
        MiBD baseDatos = new MiBD();

        public LINQ_BDD()
        {
            InitializeComponent();
        }

        private void LINQ_BDD_Load(object sender, EventArgs e)
        {
            this.traerDatos();
            this.cargarIdentificador();
        }

        private void cargarIdentificador()
        {
            var consulta = from idcliente in this.baseDatos.clientes
                           where idcliente.id > 0
                           select (int)idcliente.id;
            foreach (var identificador in consulta)
            {
                lbl_Id.Text = Convert.ToString(identificador + 1);
            }
        }
        private void btn_Guardar_Click(object sender, EventArgs e)
        {
            Cliente clienteNuevo = new Cliente();
            //clienteNuevo.id = Convert.ToInt32(txt_Id.Text);
            clienteNuevo.nombre = txt_Nombre.Text;
            clienteNuevo.anionacimiento = Convert.ToInt32(txt_FechaNac.Text);

            //instancio de la base de datos y inserto de la tabla clientes
            baseDatos.clientes.InsertOnSubmit(clienteNuevo);
            baseDatos.SubmitChanges();
            this.limpiar();
            this.traerDatos();
            this.cargarIdentificador();
        }

        private void traerDatos()
        {
            var clientesConsulta = from registroCliente in baseDatos.clientes
                                   where registroCliente.id > 0
                                   select registroCliente;
           
            lst_Clientes.Items.Clear();
            foreach (var iterclientes in clientesConsulta)
            {
                lst_Clientes.Items.Add(iterclientes);
            }
        }

        private void limpiar()
        {
            txt_Nombre.Clear();
            txt_FechaNac.Clear();
        }

        private void btn_Eliminar_Click(object sender, EventArgs e)
        {
            var resultado = MessageBox.Show("Desea eliminar al cliente?","Eliminar", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (resultado == DialogResult.Yes)
            {
                Cliente clienteEliminar = (Cliente)lst_Clientes.SelectedItem;
                baseDatos.clientes.DeleteOnSubmit(clienteEliminar);
                baseDatos.SubmitChanges();
                lst_Clientes.Items.Remove(clienteEliminar);
            }
        }
    }
}
//**************************************************************************

No hay comentarios:

Publicar un comentario