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

.NET

07/03/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;             }
Ricardo Rodrigues

Ricardo Rodrigues

Curtidas 0

Respostas

Jones Roberto

Jones Roberto

07/03/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 = 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    
GOSTEI 0
Ricardo Rodrigues

Ricardo Rodrigues

07/03/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.
GOSTEI 0
POSTAR