Array
(
)

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

Ricardo Hippler
   - 07 mar 2011

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;

            }

Jorob
   - 11 mar 2011

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

Ricardo Hippler
   - 11 mar 2011

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.