Editar dados de Usuarios
22/07/2014
0
protected void Page_Load(object sender, EventArgs e) { btnCadCli.Text = "Atualizar"; pnldadosCLi.Visible = false; if (Session["cliente"] != null) { pnldadosCLi.Visible = true; } if (IsPostBack) { //ha galera se alguem tambem puder ajudar nao sei se esta correto assim, mas aqui tenho que passar o codigo do cliente que esta logado para variavel, tenho que pegar pela session o codigo mas nao sei bem como fazer. codCLi = cliente.codCliente; cliente = clientes.Find(c => c.codCliente == codCLi).First<CLIENTE>(); txtCpfCli.Text = cliente.cpfCliente; txtNomeCli.Text = cliente.nomeCliente; dtlEstCli.SelectedValue = cliente.estadoCliente; txtCidCli.Text = cliente.cidadeCliente; txtEndCli.Text = cliente.enderecoCliente; txtMailCli.Text = cliente.emailCliente; txtFoneCli.Text = cliente.foneCliente; //aqui e para nao deixar ele alterar os dados apenas ler txtCpfCli.Enabled = false; txtNomeCli.Enabled = false; dtlEstCli.Enabled = false; txtCidCli.Enabled = false; txtEndCli.Enabled = false; txtMailCli.Enabled = false; txtFoneCli.Enabled = false; }
ai apos ele ver os dados se ele clicar no botao atualizar os campos sao liberados com os dados para ele editar, e o botao muda para salvar. Esta assim...
protected void btnCadCli_Click(object sender, EventArgs e) { //agora estou habilitando os campos para que ele possa editar txtCpfCli.Enabled = true; txtNomeCli.Enabled = true; dtlEstCli.Enabled = true; txtCidCli.Enabled = true; txtEndCli.Enabled = true; txtMailCli.Enabled = true; txtFoneCli.Enabled = true; btnCadCli.Text = "Salvar"; //este é o metodo que chamo para realmente ele atualizar os dados (salvar no banco), o codigo dele esta abaixo AtualizarCLiente(); cliente = null; clientes = null; }
aqui esta o codigo desse metodo que chamei no click do botao
public void AtualizarCLiente() { codCLi = int.Parse(txtCpfCli.Text); cliente = clientes.Find(c => c.codCliente == codCLi).First<CLIENTE>(); cliente.cpfCliente = txtCpfCli.Text; cliente.nomeCliente = txtNomeCli.Text; cliente.estadoCliente = dtlEstCli.SelectedValue; cliente.cidadeCliente = txtCidCli.Text; cliente.enderecoCliente = txtEndCli.Text; cliente.emailCliente = txtMailCli.Text; cliente.foneCliente = txtFoneCli.Text; clientes.Update(cliente); clientes.SaveChanges(); cliente = null; clientes = null; }
bem galera esta dando um erro alguem sabe o que pode ser, ou tem algum jeito melhor pra eu fazer isso?
Grato Delivery TI.
Celiol.
Posts
23/07/2014
Celiol.
Então você que é o cara no asp.
Então Joel a principio quero arrumar o problema que citei logo no inicio do código no pageLoad, pois eu coloquei o código para assim que a pagina for carregada os textBox ser preenchidos com os dados do cliente mas isso não acontece.
Acredito que é por causa dessa comparação que tenho que fazer para saber de qual cliente devo carregar os dados deve estar errada então ele não traz nada. Ta certo esse código meu para pegar o codigo do cliente pela session ?
Para simplificar eu tenho que pegar o código do usuario que esta logado, fazer uma query que realize a pesquisa na tabela e encontre os dados cujo codigo seja do cliente logado e carregar os dados nos textBox acho que isso esta dando erro. Olha como fiz.
protected void Page_Load(object sender, EventArgs e) { btnCadCli.Text = "Atualizar"; btnSalvarProf.Text = "Atualizar"; pnldadosCLi.Visible = false; pnldadosProf.Visible = false; if (Session["cliente"] != null) { pnldadosCLi.Visible = true; if (IsPostBack) { //olha aqui é onde ele pega o codigo do cliente e atribui a variavel, mas acho que esta errado pois ele deve passar o codigo do cliente que esta na session codCLi = cliente.codCliente; //aqui é onde ele faz a comparacao para saber se o codigo existe no banco cliente = clientes.Find(c => c.codCliente == codCLi).First<CLIENTE>(); //e aqui ele passa os dados para os textBox //nao sei o que esta errado alem de pegar o codigo da session txtCpfCli.Text = cliente.cpfCliente; txtNomeCli.Text = cliente.nomeCliente; dtlEstCli.SelectedValue = cliente.estadoCliente; txtCidCli.Text = cliente.cidadeCliente; txtEndCli.Text = cliente.enderecoCliente; txtMailCli.Text = cliente.emailCliente; txtFoneCli.Text = cliente.foneCliente; txtCpfCli.Enabled = false; txtNomeCli.Enabled = false; dtlEstCli.Enabled = false; txtCidCli.Enabled = false; txtEndCli.Enabled = false; txtMailCli.Enabled = false; txtFoneCli.Enabled = false; } }
28/07/2014
Celiol.
Olha como esta meu codigo:
if (Session["cliente"] != null) { pnldadosCLi.Visible = true; if (IsPostBack) { //codCLi = int.Parse(Session.SessionID); cliente = clientes.Find(c => c.codCliente == codCLi).First<CLIENTE>(); txtCpfCli.Text = cliente.cpfCliente; txtNomeCli.Text = cliente.nomeCliente; dtlEstCli.SelectedValue = cliente.estadoCliente; txtCidCli.Text = cliente.cidadeCliente; txtEndCli.Text = cliente.enderecoCliente; txtMailCli.Text = cliente.emailCliente; txtFoneCli.Text = cliente.foneCliente; lblDC.Text = cliente.dataCadastroCliente.ToString(); txtCpfCli.ReadOnly = true; txtNomeCli.ReadOnly = true; dtlEstCli.Enabled = false; txtCidCli.ReadOnly = true; txtEnd.ReadOnly = true; txtMailCli.ReadOnly = true; txtFoneCli.ReadOnly = true; }
Este codigo esta dentro do pagLoad que era pra ele carregar os dados do cliente que esta session quando ele carregar a pagina porem ele nao carrega os campos com os dados.
Acredito que é porque minha comparação da session nao esta correga. Como eu faço para pegar o codigo do usuario que esta na session?
Grato Delivery TI
29/07/2014
Celiol.
29/07/2014
Celiol.
Unable to cast object of type 'System.Int32' to type 'maos.DAO.CLIENTE'.
Esta é a mensagem de erro porem dei uma pesquisada na net e achei no forum MSDN que eu deveria fazer assim:
//olha so estou tentando passar o codigo do cliente para a variavel codCli codCLi = ((CLIENTE)Session["cliente"]).codCliente; //aqui estou pesquisando o codigo do cliente que esta na session e passando os dados dele para os textBox cliente = clientes.Find(c => c.codCliente == codCLi).First<CLIENTE>(); txtCodCli.Text = cliente.codCliente.ToString(); txtCpfCli.Text = cliente.cpfCliente; txtNomeCli.Text = cliente.nomeCliente; dtlEstCli.SelectedValue = cliente.estadoCliente; txtCidCli.Text = cliente.cidadeCliente; txtEndCli.Text = cliente.enderecoCliente; txtMailCli.Text = cliente.emailCliente; txtFoneCli.Text = cliente.foneCliente; lblDC.Text = cliente.dataCadastroCliente.ToString();
mas nao da certo cara tem como da uma ajudinha?
Delivery TI
30/07/2014
Celiol.
protected void Page_Load(object sender, EventArgs e) { btnCadCli.Text = "Atualizar"; btnSalvarProf.Text = "Atualizar"; pnldadosCLi.Visible = false; pnldadosProf.Visible = false; if (Session["cliente"] != null) { codCLi = ((CLIENTE)Session["cliente"]).codCliente; pnldadosCLi.Visible = true; cliente = clientes.Find(c => c.codCliente == codCLi).First<CLIENTE>(); txtCodCli.Text = cliente.codCliente.ToString(); txtCpfCli.Text = cliente.cpfCliente; txtNomeCli.Text = cliente.nomeCliente; dtlEstCli.SelectedValue = cliente.estadoCliente; txtCidCli.Text = cliente.cidadeCliente; txtEndCli.Text = cliente.enderecoCliente; txtMailCli.Text = cliente.emailCliente; txtFoneCli.Text = cliente.foneCliente; lblDC.Text = cliente.dataCadastroCliente.ToString(); } txtCpfCli.ReadOnly = true; txtNomeCli.ReadOnly = true; dtlEstCli.Enabled = false; txtCidCli.ReadOnly = true; txtEnd.ReadOnly = true; txtMailCli.ReadOnly = true; txtFoneCli.ReadOnly = true; }
Bem aqui é apenas para ele carregar os dados no textBox quando o cara clicar para em "Meus Dados" blz.
protected void btnCadCli_Click(object sender, EventArgs e) { txtCpfCli.Enabled = true; txtNomeCli.Enabled = true; dtlEstCli.Enabled = true; txtCidCli.Enabled = true; txtEndCli.Enabled = true; txtMailCli.Enabled = true; txtFoneCli.Enabled = true; //aqui chamo o metodo que atualiza os dados do cliente AtualizarCLiente(); cliente = null; clientes = null; } //metodo que atualiza os dados public void AtualizarCLiente() { codCLi = int.Parse(txtCodCli.Text); cliente = clientes.Find(c => c.codCliente == codCLi).First<CLIENTE>(); cliente.cpfCliente = txtCpfCli.Text; cliente.nomeCliente = txtNomeCli.Text; cliente.estadoCliente = dtlEstCli.SelectedValue; cliente.cidadeCliente = txtCidCli.Text; cliente.enderecoCliente = txtEndCli.Text; cliente.foneCliente = txtFoneCli.Text; cliente.emailCliente = txtMailCli.Text; clientes.Update(cliente); clientes.SaveChanges(); cliente = null; clientes = null; }
Bem Joel se puder da uma força nisso cara fico muito agradecido, tive que dar uma pequena parada nessa parte pois agora estou tentando fazer a integração com a API de assinatudo do pagSeguro mas ta F#d@ cara aqui no site tem algum tutorial ou video? Sabe me dizer. OU ja fez isso cara.
30/07/2014
Celiol.
protected void Page_Load(object sender, EventArgs e) { btnCadCli.Text = "Atualizar"; btnSalvarProf.Text = "Atualizar"; pnldadosCLi.Visible = false; pnldadosProf.Visible = false; if (Session["cliente"] != null) { codCLi = ((CLIENTE)Session["cliente"]).codCliente; pnldadosCLi.Visible = true; cliente = clientes.Find(c => c.codCliente == codCLi).First<CLIENTE>(); txtCodCli.Text = cliente.codCliente.ToString(); txtCpfCli.Text = cliente.cpfCliente; txtNomeCli.Text = cliente.nomeCliente; dtlEstCli.SelectedValue = cliente.estadoCliente; txtCidCli.Text = cliente.cidadeCliente; txtEndCli.Text = cliente.enderecoCliente; txtMailCli.Text = cliente.emailCliente; txtFoneCli.Text = cliente.foneCliente; lblDC.Text = cliente.dataCadastroCliente.ToString(); } txtCpfCli.ReadOnly = true; txtNomeCli.ReadOnly = true; dtlEstCli.Enabled = false; txtCidCli.ReadOnly = true; txtEnd.ReadOnly = true; txtMailCli.ReadOnly = true; txtFoneCli.ReadOnly = true; }
Bem aqui é apenas para ele carregar os dados no textBox quando o cara clicar para em "Meus Dados" blz.
protected void btnCadCli_Click(object sender, EventArgs e) { txtCpfCli.Enabled = true; txtNomeCli.Enabled = true; dtlEstCli.Enabled = true; txtCidCli.Enabled = true; txtEndCli.Enabled = true; txtMailCli.Enabled = true; txtFoneCli.Enabled = true; //aqui chamo o metodo que atualiza os dados do cliente AtualizarCLiente(); cliente = null; clientes = null; } //metodo que atualiza os dados public void AtualizarCLiente() { codCLi = int.Parse(txtCodCli.Text); cliente = clientes.Find(c => c.codCliente == codCLi).First<CLIENTE>(); cliente.cpfCliente = txtCpfCli.Text; cliente.nomeCliente = txtNomeCli.Text; cliente.estadoCliente = dtlEstCli.SelectedValue; cliente.cidadeCliente = txtCidCli.Text; cliente.enderecoCliente = txtEndCli.Text; cliente.foneCliente = txtFoneCli.Text; cliente.emailCliente = txtMailCli.Text; clientes.Update(cliente); clientes.SaveChanges(); cliente = null; clientes = null; }
Bem Joel se puder da uma força nisso cara fico muito agradecido, tive que dar uma pequena parada nessa parte pois agora estou tentando fazer a integração com a API de assinatudo do pagSeguro mas ta F#d@ cara aqui no site tem algum tutorial ou video? Sabe me dizer. OU ja fez isso cara.
31/07/2014
Joel Rodrigues
31/07/2014
Celiol.
01/08/2014
Celiol.
Pode dar uma força?
01/08/2014
Celiol.
Bem é seguinte, o que esta acontecendo é que quando eu clico em (editar dados) ele me direciona para a pagina dos dados tudo blz e os campos desabilitados, ai quando eu clico no botao atualizar ele esta desabilitando os botoes. porem eu coloquei uns brackPoints no evento atualizar dados e olha o que ta acontecendo, os textBox obviamente ja estão recebendo os dados que vem do cliente logado, ai quando eu altera algo ele nao passa la para o campo pois ja esta preenchido, olha o que ele fez depois que habilitou os campos:
//método que atualiza os dados public void AtualizarCLiente() { //olha essa linha eu alterei pois tem que ser o código do cliente que esta logado (da session) codCLi = int.Parse(txtCodCli.Text); //esta correto assim Joel passar o código do usuário na session? codCli = ((CLIENTE)Session["cliente"]).codCliente; //bem agora vai vendo o que aconteceu com os brackPoints //aqui nessa linha coloquei um (e na instancia do cliente ele ja tinha os dados) acredito que ate aqui tudo blz pois os dados vem do banco carregado no textBox cliente = clientes.Find(c => c.codCliente == codCLi).First<CLIENTE>(); //aqui os dados que quero alterar ja estao com os valores passando para uma instancia do cliente tambem os mesmo que foram carregados do banco cliente.cpfCliente = txtCpfCli.Text; cliente.nomeCliente = txtNomeCli.Text; cliente.estadoCliente = dtlEstCli.SelectedValue; cliente.cidadeCliente = txtCidCli.Text; cliente.enderecoCliente = txtEndCli.Text; cliente.foneCliente = txtFoneCli.Text; cliente.emailCliente = txtMailCli.Text; // aqui que percebi o problema quando ele me manda pra ca no brackpoint dessa linha (cliente = clientes.Find(c => c.codCliente == codCLi).First<CLIENTE>(); //ai a hora que eu clico em continuar ele ja pula aqui para fazer o commit e salvar os dados mas nao os dados alterados e sim os dados que ja vieram do banco //entendeu agora o problema, como tenho que fazer para alterar esses dados antes dele mandar salvar? clientes.Update(cliente); clientes.SaveChanges(); cliente = null; clientes = null; }
Grato Delivery TI
01/08/2014
Joel Rodrigues
Voce vai precisar de OUTRO BOTÃO para salvar os dados. Um para habilitar os campos e outro para salvar.
02/08/2014
Celiol.
protected void btnSave_Click(object sender, EventArgs e) { codCliente = txtCpfCli.Text; cliente = clientes.Find(c => c.cpfCliente == codCliente).First<CLIENTE>(); cliente.cpfCliente = txtCpfCli.Text; cliente.nomeCliente = txtNomeCli.Text; cliente.estadoCliente = dtlEstCli.SelectedValue; cliente.cidadeCliente = txtCidCli.Text; cliente.enderecoCliente = txtEndCli.Text; cliente.foneCliente = txtFoneCli.Text; cliente.emailCliente = txtMailCli.Text; cliente.dataCadastroCliente = DateTime.Now; clientes.Update(cliente); //porem aqui quando vou ver os dados que vão ser salvos na entidade cliente são os mesmos na verdade ele nao esta passando os dados que eu atualizei e sim os que ja tem. clientes.SaveChanges(); cliente = null; clientes = null; }
O que esta errado cara.
Clique aqui para fazer login e interagir na Comunidade :)