How to return the value of an Entity Framework field C #

0
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 AuditContatos.Dados;
using AuditContatos.Properties;

namespace AuditContatos
{
    public partial class Form1 : Form
    {   
        public Form1()
        {
            InitializeComponent();
        }

        ContatosAuditEntities objetoEntidade = new ContatosAuditEntities();

        protected void select()
        {
            dataGridViewMostrarContatos.DataSource = objetoEntidade.select_contato();
        }

        public void cadastrar_contato()
        {
            objetoEntidade.inserir_contato(txtNomeCli.Text, txtEmailCli.Text, maskedTxtTelefoneCli.Text, txtResponsavelCli.Text, txtIdLicencaCli.Text, txtIdAcessoCli.Text, txtSenhaCli.Text, dateTimePickerUltimoAcessoCli.Text, txtMelhoriaRealizadaCli.Text, txtIdPortalCli.Text, txtIdServicoCli.Text, txtIdVersaoAplicacaoCli.Text);
            objetoEntidade.SaveChanges();
        }

       //atualiza o grid e a data e hora
        private void Form1_Load(object sender, EventArgs e)
        {
            //select();
            timer1_Tick(e, e);
        }

        //sai da aplicação
        private void buttonSair_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        //parametros data e hora
        private void timer1_Tick(object sender, EventArgs e)
        {
            DateTime dataHora = DateTime.Now; //a cada um segundo atualiza a variavel hora
            tsslDateTime.Text = "Data:  " + dataHora.ToLongDateString() + "                         Hora:  " + dataHora.ToLongTimeString();
        }

        //atualiza
        private void buttonAtualizar_Click(object sender, EventArgs e)
        {
            select();
        }


        //edita
        private void buttonEditar_Click(object sender, EventArgs e)
        {
            tabControlClientes.SelectedTab = tabPageManutencaoCliente;
            txtCodigoCli.Enabled = true;
        }

        //cadastra
        private void buttonCadastrar_Click(object sender, EventArgs e)
        {
            tabControlClientes.SelectedTab = tabPageManutencaoCliente;
            txtCodigoCli.Enabled = false;
        }

        //confirma alteração
        private void buttonConfirmar_Click(object sender, EventArgs e)
        {
            if (txtCodigoCli.Enabled == true)
            {
                objetoEntidade.update_contato(Convert.ToInt32(txtCodigoCli.Text), txtNomeCli.Text, txtEmailCli.Text, maskedTxtTelefoneCli.Text, txtResponsavelCli.Text, txtIdLicencaCli.Text, txtIdAcessoCli.Text, txtSenhaCli.Text, dateTimePickerUltimoAcessoCli.Text, txtMelhoriaRealizadaCli.Text, txtIdPortalCli.Text, txtIdServicoCli.Text, txtIdVersaoAplicacaoCli.Text);
                objetoEntidade.SaveChanges();
                MessageBox.Show("Dados Alterados", "Confirmação.", MessageBoxButtons.OK);
                tabControlClientes.SelectedTab = tabPageDadosCliente;
                select();
            }
            else
            {
                cadastrar_contato();
                objetoEntidade.SaveChanges();
                MessageBox.Show("Cadastro concluido.", "Confirmação.", MessageBoxButtons.OK);
                tabControlClientes.SelectedTab = tabPageDadosCliente;
                select();
            }
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("Deseja realmente sair?", "Encerrando o Sistema...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                e.Cancel = true;
            }
        }

        private void txtCodigoCli_Leave(object sender, EventArgs e)
        {

        }
    }
}

ForbetterunderstandingIputthecodeandthevisual.

Ineedtoenterthecodeoftheclientinthefield"code" and it will bring the other data. How do I do this?

    
asked by anonymous 02.04.2014 / 15:46

1 answer

1

Using the Leave event, you search through the code, save a variable in the returned object, and assign it to the controls. More or less like this:

private void txtCodigo_Leave(object sender, System.EventArgs e)
{
   // Recupera os dados
   Entity obj = db.Entity.Find(x => x.Codigo.Equals(int.Parse((sender as TextBox).Text))).FirstOrDefault();
   txtNome.Text = obj.Nome;
   txtEmail.Text = obj.Email;
   //... demais campos
}

EDIT: Explanation

private void txtCodigo_Leave(object sender, System.EventArgs e)
{
   //db.Entity - É o seu contexto de acesso ao banco de dados, no seu caso, o 'ContatosAuditEntities objetoEntidade'
   //Você precisa ter um método que retorna um objeto completo, ou seja, uma linha completa do seu registro, para uma variável VAR ou do tipo do Objeto esperado
   //Onde 'Entity = Tipo do Objeto' e o 'db.Entity.Find(...)...' é o método.
   Entity obj = db.Entity.Find(x => x.Codigo.Equals(int.Parse((sender as TextBox).Text))).FirstOrDefault();
   //Daí então atribuir para seus controles
   txtNome.Text = obj.Nome;
   txtEmail.Text = obj.Email;
   //... demais campos
}
    
02.04.2014 / 16:07