Como alterar varios campos de um cadastro e trazer o mesmo na tela.

07/03/2011

0

Olá pessoal, boa tarde. Estou com uma duvida de como faço para alterar varios registros de um cadastro de uma só vez e tipo queria fazer assim, quando eu digitasse o codigo do cliente la no codigo e desse enter, o programa me trazesse o cadastro do cliente. incorrect syntax near the keyword where
a primeira duvida vai aqui a linha que está dando problema:   Camada DAL public void alteraCliente(cadastro_cliente cliente)         {             try             {                 conexao = new SqlConnection (conexao_sqlserver);                 SqlCommand sql = new SqlCommand ("update cliente set nome = @nome, cpf = @cpf, tel_fixo = @tel_fixo, tel_cel = @tel_cel, cidade = @cidade, rua = @rua, numero = @numero, bairro = @bairro,@data_nasc where codigo = @codigo" , conexao);                 sql.Parameters.AddWithValue("@codigo" , cliente.Codigo);                 sql.Parameters.AddWithValue("@nome" , cliente.Nome);                 sql.Parameters.AddWithValue("@sexo" , cliente.Sexo);                 sql.Parameters.AddWithValue("@cpf" , cliente.Cpf);                 sql.Parameters.AddWithValue("@tel_fixo" , cliente.Tel_fixo);                  sql.Parameters.AddWithValue("@tel_cel" , cliente.Tel_cel);                 sql.Parameters.AddWithValue("@cidade" , cliente.Cidade);                 sql.Parameters.AddWithValue("@rua" , cliente.Rua);                 sql.Parameters.AddWithValue("@numero" , cliente.Numero);                 sql.Parameters.AddWithValue("@bairro" , cliente.Bairro);                 sql.Parameters.AddWithValue("@data_nasc" , cliente.Data);                   conexao.Open();                 sql.ExecuteNonQuery();               }             catch (Exception erro)             {                 throw erro;             }             finally             {                 conexao.Close();             }   botão private void b_editar_Click(object sender, EventArgs e)         {              cadastro_cliente cliente = new cadastro_cliente ();             cliente.Codigo = Convert .ToInt32(tb_cod_cli.Text);             cliente.Nome = tb_nome_cli.Text;             cliente.Sexo = cb_sexo.SelectedValue.ToString();             cliente.Cpf = mtb_cpf.Text;             cliente.Tel_fixo = mtb_tel_fix.Text;             cliente.Tel_cel =mtb_cel.Text;             cliente.Cidade = tb_cidade.Text;             cliente.Rua = tb_rua_cli.Text;             cliente.Numero = mtb_numero.Text;             cliente.Bairro = tb_bairro_cli.Text;             cliente.Data = Convert .ToDateTime(mtb_data_nascimento.Text);               try             {                 cadastroBLL cadastrobll = new cadastroBLL () ;                 cadastrobll.alteraClienteDal(cliente);                  MessageBox .Show("Cadastro alterado com Sucesso" );             }             catch (Exception erro)             {                 throw erro;             }   Altera cliente na camada BLL public void alteraClienteDal(cadastro_cliente cliente)         {              try             {                 cadastrodal = new cadastroDal ();                 cadastrodal.alteraCliente(cliente);             }             catch (Exception erro)             {                 throw erro;             }
Ricardo Rodrigues

Ricardo Rodrigues

Responder

Posts

11/03/2011

Jones Roberto

Bom dia Ricardo, você pode fazer um Btn que ao ser clicado carregue os dados do Cliente através de um busca na tabela do banco que pode ser feita utilizando um DataReader , com esse dataReader você preenche as textBox do seu cadastro .... com isso você poderá alterar o registro do banco... outra sugestão é que em vez de passar um cliente como parametro para o alterar passe apenas o id do cliente , ao dentro do metodo vc instancia um objeto cliente e passa o valor do parametro como sendo igual ao cliente.Codigo   exemplo:     public void alteraCliente(int codigo)         {             try             {                cadastro_cliente cliente = new cadastro_cliente();                cliente.Codigo = codigo;                   conexao = new SqlConnection (conexao_sqlserver);                   string comando = "update cliente set nome = @nome, cpf = @cpf, tel_fixo = @tel_fixo, tel_cel = @tel_cel, cidade = @cidade, rua = @rua, numero = @numero, bairro = @bairro,data_nasc=@data_nasc where codigo = @codigo";                 SqlCommand sql = new SqlCommand (comando , conexao);                 sql.Parameters.AddWithValue("@codigo" , cliente.Codigo);                 sql.Parameters.AddWithValue("@nome" , cliente.Nome);                 sql.Parameters.AddWithValue("@sexo" , cliente.Sexo);                 sql.Parameters.AddWithValue("@cpf" , cliente.Cpf);                 sql.Parameters.AddWithValue("@tel_fixo" , cliente.Tel_fixo);                  sql.Parameters.AddWithValue("@tel_cel" , cliente.Tel_cel);                 sql.Parameters.AddWithValue("@cidade" , cliente.Cidade);                 sql.Parameters.AddWithValue("@rua" , cliente.Rua);                 sql.Parameters.AddWithValue("@numero" , cliente.Numero);                 sql.Parameters.AddWithValue("@bairro" , cliente.Bairro);                 sql.Parameters.AddWithValue("@data_nasc" , cliente.Data);                 conexao.Open();                 sql.ExecuteNonQuery();             }             catch (Exception erro)             {                 throw erro;             }             finally             {                 conexao.Close();             }   você também esqueceu de setar data_nasc=@data_nasc por isso estava gerando o erro tente agora dessa maneira... agora vc tera que ver como vai fazer para carregar o cliente no seu formulario de autalização de cadastro vou te dar um exemplo de como pode ser feito...     #region carregaCliente()
        public void carregaCliente(int codigoCliente)
        {
            cadastro_cliente cliente = new cadastro_cliente();               conexao = new SqlConnection (conexao_sqlserver);
              string cmdSql = "Select * from cliente Where codigo="+ codigoCliente;              SqlCommand cmd = new SqlCommand(cmdSql, conn);
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            dr.Read();
                         nomedoseutextbox_codigo.Text = dr["codigo"].ToString();
            nomedoseutextbox_nome.Text = dr["nome"].ToString();
            nomedoseutextbox_sexo.Text = dr["sexo"].ToString();
            nomedoseutextbox_cpf.Text = dr["cpf"].ToString(); 
            nomedoseutextbox_tel_fixo.Text = dr["tel_fixo"].ToString();
            nomedoseutextbox_tel_cel.Text = dr["tel_cel"].ToString();             nomedoseutextbox_cidade.Text = dr["cidade"].ToString();             nomedoseutextbox_rua.Text = dr["rua"].ToString();             nomedoseutextbox_numero.Text = dr["numero"].ToString();             nomedoseutextbox_bairro.Text = dr["bairro"].ToString();             nomedoseutextbox_data_nasc.Text = dr["data_nasc"].ToString();             conn.Close();
            conn.Dispose();
           
        }
        #endregion   Acho que esse metodo vai carregar as propriedades de que você deseja (lembre-se eu digite o cod direito aqui , se tiver algum erro verifique no Visual Studio) acho que esse exemplo vai te ajudar muito no que vc precisa fazer , quanto ao jeito de chamar esse metodo ai vc vai ter que decidir , se vai chamar através de um button , ou através de um POSTBACK do Textbox onde vc vai digitar o codigo...   Espero que ajude..   Att,   Jones Roberto    
Responder

11/03/2011

Ricardo Rodrigues

Opa vlw ai, estou no trabalho agora mais a noite quando chegar em casa já faço as alterações e posto se deu certo ou não.
Muito obrigado.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar