none
Problemas com UpdateCommand RRS feed

  • Pergunta

  • fala eaeee galera,,,

    Estou com  problemas para atualizar os dados do meu banco em SQL-SERVER.. utilizando C#!!!
     na tela aparece os dados atualizados sem erro algum , mas no banco os dados não há nenhuma alteração..

    segue abaixo o código.. acredito que estou esquecendo algum detalhe.. 
            private void btn_Atualizar_Cliente_Click(object sender, EventArgs e)
            {
                try
                {
                    int id = Convert.ToInt32(cbxClientes.SelectedValue.ToString());
                    id = id + 1;
    
                    SqlConnection cs = new SqlConnection("Data Source=DKAUF; Initial Catalog=BancoEscritorio; Integrated Security=TRUE");
              
                    SqlDataAdapter da = new SqlDataAdapter();
                    da.UpdateCommand = new SqlCommand(@"UPDATE Cliente SET NOME = @NOME, CPF = @CPF, RG = @RG, NASCIMENTO = @NASCIMENTO, ESTADOCIVIL = @ESTADOCIVIL, RUA = @RUA, NUMERO = @NUMERO, COMPLEMENTO = @COMPLEMENTO, BAIRRO = @BAIRRO, CIDADE = @CIDADE, CEP = @CEP, RESIDENCIAL = @RESIDENCIAL, CELULAR = @CELULAR, ANOTACLIENTE = @ANOTA WHERE  IDCliente =  + '" + id + "'" , cs);
    
          
    
                    da.UpdateCommand.Parameters.Add("@NOME", SqlDbType.NVarChar).Value = txtNome.Text;
                    da.UpdateCommand.Parameters.Add("@CPF", SqlDbType.NVarChar).Value = mtxtCPF.Text;
                    da.UpdateCommand.Parameters.Add("@RG", SqlDbType.NVarChar).Value = txtRG.Text;
                    da.UpdateCommand.Parameters.Add("@NASCIMENTO", SqlDbType.NVarChar).Value = mtxtNasc.Text;
                    da.UpdateCommand.Parameters.Add("@ESTADOCIVIL", SqlDbType.NVarChar).Value = cbxEstadoCivil.Text;
                    da.UpdateCommand.Parameters.Add("@RUA", SqlDbType.NVarChar).Value = txtRua.Text;
                    da.UpdateCommand.Parameters.Add("@NUMERO", SqlDbType.NVarChar).Value = txtNumero.Text;
                    da.UpdateCommand.Parameters.Add("@COMPLEMENTO", SqlDbType.NVarChar).Value = txtComp.Text;
                    da.UpdateCommand.Parameters.Add("@BAIRRO", SqlDbType.NVarChar).Value = txtBairro.Text;
                    da.UpdateCommand.Parameters.Add("@CIDADE", SqlDbType.NVarChar).Value = txtCidade.Text;
                    da.UpdateCommand.Parameters.Add("@CEP", SqlDbType.NVarChar).Value = mtxtCEP.Text;
                    da.UpdateCommand.Parameters.Add("@RESIDENCIAL", SqlDbType.NVarChar).Value = mtxtResidencial.Text;
                    da.UpdateCommand.Parameters.Add("@CELULAR", SqlDbType.NVarChar).Value = mtxtCelular.Text;
                    da.UpdateCommand.Parameters.Add("@ANOTA", SqlDbType.NVarChar).Value = txtAnotacoes.Text;
    
    
    
                    cs.Open();
                    
                    int retorno = da.UpdateCommand.ExecuteNonQuery();
                    cs.Close();
                    MessageBox.Show("Dados alterados com sucesso!!!");
    
                }
                catch (Exception erro)
                {
                    MessageBox.Show("ERRO 32 -  Não foi possível alterar os dados!!");
                }
    
            }
    
    Desde já agradeço pela ajuda!!!!
    terça-feira, 23 de fevereiro de 2010 16:48

Respostas

  • Consegui fazer rodar !!!!!!!!!

    o problema era que todos os parâmetros estavam atribuídos assim:

    nome.Value = mtxtCPF.Text;

    um detalhe que passou desapercebido!!!!! 

    vou colocar código resolvido para consulta de outros usuários!!!!
    private void btn_Atualizar_Cliente_Click(object sender, EventArgs e)
            {
                
                
                int id = Convert.ToInt32(cbxClientes.SelectedValue.ToString());
                 
    
    
                    string conexao = "Data Source=DKAUF; Initial Catalog=BancoEscritorio; Integrated Security=TRUE";
                string str_atualiza = "UPDATE Cliente SET NOME = @NOME, CPF = @CPF, "
                                                                        + "RG = @RG, NASCIMENTO = @NASCIMENTO, ESTADOCIVIL "
                                                                        + "= @ESTADOCIVIL, RUA = @RUA, NUMERO = @NUMERO, COMPLEMENTO "
                                                                        + "= @COMPLEMENTO, BAIRRO = @BAIRRO, CIDADE = @CIDADE, CEP = "
                                                                        + "@CEP, RESIDENCIAL = @RESIDENCIAL, CELULAR = @CELULAR, "
                                                                        + "ANOTACLIENTE = @ANOTACLIENTE WHERE  IDCliente =  + '" + id + "'";
    
    
                SqlConnection cs = new SqlConnection(conexao);
                try
                {
                    
    
    
                    SqlCommand comando = new SqlCommand(str_atualiza, cs);
    
                    SqlParameter nome = new SqlParameter("@NOME", SqlDbType.NVarChar);
                    nome.Value = txtNome.Text;
                    comando.Parameters.Add(nome);
    
                    SqlParameter cpf = new SqlParameter("@CPF", SqlDbType.NVarChar);
                    cpf.Value = mtxtCPF.Text;
                    comando.Parameters.Add(cpf);
    
                    SqlParameter rg = new SqlParameter("@RG", SqlDbType.NVarChar);
                    rg.Value = txtRG.Text;
                    comando.Parameters.Add(rg);
    
                    SqlParameter nascimento = new SqlParameter("@NASCIMENTO", SqlDbType.NVarChar);
                    nascimento.Value = mtxtNasc.Text;
                    comando.Parameters.Add(nascimento);
    
                    SqlParameter estadocivil = new SqlParameter("@ESTADOCIVIL", SqlDbType.NVarChar);
                    estadocivil.Value = cbxEstadoCivil.Text;
                    comando.Parameters.Add(estadocivil);
    
                    SqlParameter rua = new SqlParameter("@RUA", SqlDbType.NVarChar);
                    rua.Value = txtRua.Text;
                    comando.Parameters.Add(rua);
    
                    SqlParameter numero = new SqlParameter("@NUMERO", SqlDbType.NVarChar);
                    numero.Value = txtNumero.Text;
                    comando.Parameters.Add(numero);
    
                    SqlParameter complemento = new SqlParameter("@COMPLEMENTO", SqlDbType.NVarChar);
                    complemento.Value = txtComp.Text;
                    comando.Parameters.Add(complemento);
    
                    SqlParameter bairro = new SqlParameter("@BAIRRO", SqlDbType.NVarChar);
                    bairro.Value = txtBairro.Text;
                    comando.Parameters.Add(bairro);
    
                    SqlParameter cidade = new SqlParameter("@CIDADE", SqlDbType.NVarChar);
                    cidade.Value = txtCidade.Text;
                    comando.Parameters.Add(cidade);
    
                    SqlParameter cep = new SqlParameter("@CEP", SqlDbType.NVarChar);
                    cep.Value = mtxtCEP.Text;
                    comando.Parameters.Add(cep);
    
                    SqlParameter residencial = new SqlParameter("@RESIDENCIAL", SqlDbType.NVarChar);
                    residencial.Value = mtxtResidencial.Text;
                    comando.Parameters.Add(residencial);
    
                    SqlParameter celular = new SqlParameter("@CELULAR", SqlDbType.NVarChar);
                    celular.Value = mtxtCelular.Text;
                    comando.Parameters.Add(celular);
    
                    SqlParameter anotacliente = new SqlParameter("@ANOTACLIENTE", SqlDbType.NVarChar);
                    anotacliente.Value = txtAnotacoes.Text;
                    comando.Parameters.Add(anotacliente);
    
    
    
    
                    cs.Open();
    
                    comando.ExecuteNonQuery();
                    cs.Close();
                    // Crie alguma funcao para limpar os dados dos texbox
                    MessageBox.Show("Dados alterados com sucesso!!!");
    
                }
                catch (Exception erro)
                {
                    MessageBox.Show("ERRO 32 -  Não foi possível alterar os dados!!");
                }
                finally
                {
                    if (cs.State == ConnectionState.Open)
                        cs.Close();
                }
    
            }
    Até a próxima e Valeu Maciel!!!


    • Marcado como Resposta DougKauf terça-feira, 23 de fevereiro de 2010 21:17
    terça-feira, 23 de fevereiro de 2010 21:17

Todas as Respostas

  • Olá Doug.

    Para iniciar o que siguinifica esta linha = int id = Convert.ToInt32(cbxClientes.SelectedValue.ToString());
                                                              id = id + 1;

    E no update = IDCliente =  + '" + id + "'" --> O ID não esta como auto increment no banco?
    terça-feira, 23 de fevereiro de 2010 17:36
  • Cara teste ai e me diz o que que deu.
    ___________________________________________________________________________________________________________________

    string conexao = "Data Source=DKAUF; Initial Catalog=BancoEscritorio; Integrated Security=TRUE";
    string str_atualiza = "UPDATE Cliente SET NOME = @NOME, CPF = @CPF, "
                                                            +"RG = @RG, NASCIMENTO = @NASCIMENTO, ESTADOCIVIL "
                                                            +"= @ESTADOCIVIL, RUA = @RUA, NUMERO = @NUMERO, COMPLEMENTO "
                                                            +"= @COMPLEMENTO, BAIRRO = @BAIRRO, CIDADE = @CIDADE, CEP = "
                                                            +"@CEP, RESIDENCIAL = @RESIDENCIAL, CELULAR = @CELULAR, "
                                                            +"ANOTACLIENTE = @ANOTA WHERE  IDCliente =  + '" + id + "'";


    SqlConnection cs = new SqlConnection(conexao);
                    try
                    {
                        int id = Convert.ToInt32(cbxClientes.SelectedValue.ToString());
                        id = id + 1;


                    SqlCommand comando = new SqlCommand(str_comando,cs);
          
          SqlParameter nome = new SqlParameter("@NOME", SqlDbType.NVarChar);
          nome.Value = txtNome.Text;
                        comando.Parameters.Add(nome);
        
          SqlParameter cpf = new SqlParameter("@CPF", SqlDbType.NVarChar);
          nome.Value = mtxtCPF.Text;
                        comando.Parameters.Add(cpf);
         
          SqlParameter rg = new SqlParameter("@RG", SqlDbType.NVarChar);
          nome.Value = txtRG.Text;
                        comando.Parameters.Add(rg);

          SqlParameter nascimento = new SqlParameter("@NASCIMENTO", SqlDbType.NVarChar);
          nome.Value = mtxtNasc.Text;
                        comando.Parameters.Add(nascimento);

          SqlParameter estadocivil = new SqlParameter("@ESTADOCIVIL", SqlDbType.NVarChar);
          nome.Value = cbxEstadoCivil.Text;
                        comando.Parameters.Add(estadocivil);

          SqlParameter rua = new SqlParameter("@RUA", SqlDbType.NVarChar);
          nome.Value = txtRua.Text;
                        comando.Parameters.Add(rua);

          SqlParameter numero = new SqlParameter("@NUMERO", SqlDbType.NVarChar);
          nome.Value = txtNumero.Text;
                        comando.Parameters.Add(numero);

          SqlParameter complemento = new SqlParameter("@COMPLEMENTO", SqlDbType.NVarChar);
          nome.Value = txtComp.Text;
                        comando.Parameters.Add(complemento);

          SqlParameter bairro = new SqlParameter("@BAIRRO", SqlDbType.NVarChar);
          nome.Value = txtBairro.Text;
                        comando.Parameters.Add(bairro);

          SqlParameter cidade = new SqlParameter("@CIDADE", SqlDbType.NVarChar);
          nome.Value = txtCidade.Text;
                        comando.Parameters.Add(cidade);

          SqlParameter cep = new SqlParameter("@CEP", SqlDbType.NVarChar);
          nome.Value = mtxtCEP.Text;
                        comando.Parameters.Add(cep);

          SqlParameter residencial = new SqlParameter("@RESIDENCIAL", SqlDbType.NVarChar);
          nome.Value = mtxtResidencial.Text;
                        comando.Parameters.Add(residencial);

          SqlParameter celular = new SqlParameter("@CELULAR", SqlDbType.NVarChar);
          nome.Value = mtxtCelular.Text;
                        comando.Parameters.Add(celular);

          SqlParameter anota = new SqlParameter("@ANOTA", SqlDbType.NVarChar);
          nome.Value = txtAnotacoes.Text;
                        comando.Parameters.Add(anota);

     


                    cs.Open();

      comando.ExecuteNonQuery();
                    cs.Close();
      // Crie alguma funcao para limpar os dados dos texbox
                    MessageBox.Show("Dados alterados com sucesso!!!");

                }
                catch (Exception erro)
                {
                    MessageBox.Show("ERRO 32 -  Não foi possível alterar os dados!!");
                }
         finally
                {
                    if (cs.State == ConnectionState.Open)
                        cs.Close();
                }

    terça-feira, 23 de fevereiro de 2010 18:11
  • Fala Maciel,,

    Cara , rolou o seguinte erro..

    erro = {"A consulta com parâmetros '(@NOME nvarchar(4000),@CPF nvarchar(4000),@RG nvarchar(4000),@NA' espera o parâmetro '@CPF', que não foi fornecido."}

    só que todos esses campos estão preenchidos tanto no banco quanto na tela!!!  o CPF também está preenchido nas duas aplicações...

    Tens alguma idéia do que possa ser???

    Valeu pela ajuda!!
    terça-feira, 23 de fevereiro de 2010 19:49
  • Desculpa aíi Maciel ,, não tinha visto a  tua primeira resposta...

    o "int id" recebe o ID do cliente que foi selecionado na ComboBox que possui todos os clientes cadastrados..

    e quanto ao     E no update = IDCliente =  + '" + id + "'" --> O ID não esta como auto increment no banco?

    faz a relação com o ID que está no banco!!!


    Estou pesquisando pra ver se encontro o porquê do erro,, mas até agora não encontrei nada!!!
    Segue o erro aí denovo! 

     erro = {"A consulta com parâmetros '(@NOME nvarchar(4000),@CPF nvarchar(4000),@RG nvarchar(4000),@NA' espera o parâmetro '@CPF', que não foi fornecido."}
    terça-feira, 23 de fevereiro de 2010 20:36
  • Consegui fazer rodar !!!!!!!!!

    o problema era que todos os parâmetros estavam atribuídos assim:

    nome.Value = mtxtCPF.Text;

    um detalhe que passou desapercebido!!!!! 

    vou colocar código resolvido para consulta de outros usuários!!!!
    private void btn_Atualizar_Cliente_Click(object sender, EventArgs e)
            {
                
                
                int id = Convert.ToInt32(cbxClientes.SelectedValue.ToString());
                 
    
    
                    string conexao = "Data Source=DKAUF; Initial Catalog=BancoEscritorio; Integrated Security=TRUE";
                string str_atualiza = "UPDATE Cliente SET NOME = @NOME, CPF = @CPF, "
                                                                        + "RG = @RG, NASCIMENTO = @NASCIMENTO, ESTADOCIVIL "
                                                                        + "= @ESTADOCIVIL, RUA = @RUA, NUMERO = @NUMERO, COMPLEMENTO "
                                                                        + "= @COMPLEMENTO, BAIRRO = @BAIRRO, CIDADE = @CIDADE, CEP = "
                                                                        + "@CEP, RESIDENCIAL = @RESIDENCIAL, CELULAR = @CELULAR, "
                                                                        + "ANOTACLIENTE = @ANOTACLIENTE WHERE  IDCliente =  + '" + id + "'";
    
    
                SqlConnection cs = new SqlConnection(conexao);
                try
                {
                    
    
    
                    SqlCommand comando = new SqlCommand(str_atualiza, cs);
    
                    SqlParameter nome = new SqlParameter("@NOME", SqlDbType.NVarChar);
                    nome.Value = txtNome.Text;
                    comando.Parameters.Add(nome);
    
                    SqlParameter cpf = new SqlParameter("@CPF", SqlDbType.NVarChar);
                    cpf.Value = mtxtCPF.Text;
                    comando.Parameters.Add(cpf);
    
                    SqlParameter rg = new SqlParameter("@RG", SqlDbType.NVarChar);
                    rg.Value = txtRG.Text;
                    comando.Parameters.Add(rg);
    
                    SqlParameter nascimento = new SqlParameter("@NASCIMENTO", SqlDbType.NVarChar);
                    nascimento.Value = mtxtNasc.Text;
                    comando.Parameters.Add(nascimento);
    
                    SqlParameter estadocivil = new SqlParameter("@ESTADOCIVIL", SqlDbType.NVarChar);
                    estadocivil.Value = cbxEstadoCivil.Text;
                    comando.Parameters.Add(estadocivil);
    
                    SqlParameter rua = new SqlParameter("@RUA", SqlDbType.NVarChar);
                    rua.Value = txtRua.Text;
                    comando.Parameters.Add(rua);
    
                    SqlParameter numero = new SqlParameter("@NUMERO", SqlDbType.NVarChar);
                    numero.Value = txtNumero.Text;
                    comando.Parameters.Add(numero);
    
                    SqlParameter complemento = new SqlParameter("@COMPLEMENTO", SqlDbType.NVarChar);
                    complemento.Value = txtComp.Text;
                    comando.Parameters.Add(complemento);
    
                    SqlParameter bairro = new SqlParameter("@BAIRRO", SqlDbType.NVarChar);
                    bairro.Value = txtBairro.Text;
                    comando.Parameters.Add(bairro);
    
                    SqlParameter cidade = new SqlParameter("@CIDADE", SqlDbType.NVarChar);
                    cidade.Value = txtCidade.Text;
                    comando.Parameters.Add(cidade);
    
                    SqlParameter cep = new SqlParameter("@CEP", SqlDbType.NVarChar);
                    cep.Value = mtxtCEP.Text;
                    comando.Parameters.Add(cep);
    
                    SqlParameter residencial = new SqlParameter("@RESIDENCIAL", SqlDbType.NVarChar);
                    residencial.Value = mtxtResidencial.Text;
                    comando.Parameters.Add(residencial);
    
                    SqlParameter celular = new SqlParameter("@CELULAR", SqlDbType.NVarChar);
                    celular.Value = mtxtCelular.Text;
                    comando.Parameters.Add(celular);
    
                    SqlParameter anotacliente = new SqlParameter("@ANOTACLIENTE", SqlDbType.NVarChar);
                    anotacliente.Value = txtAnotacoes.Text;
                    comando.Parameters.Add(anotacliente);
    
    
    
    
                    cs.Open();
    
                    comando.ExecuteNonQuery();
                    cs.Close();
                    // Crie alguma funcao para limpar os dados dos texbox
                    MessageBox.Show("Dados alterados com sucesso!!!");
    
                }
                catch (Exception erro)
                {
                    MessageBox.Show("ERRO 32 -  Não foi possível alterar os dados!!");
                }
                finally
                {
                    if (cs.State == ConnectionState.Open)
                        cs.Close();
                }
    
            }
    Até a próxima e Valeu Maciel!!!


    • Marcado como Resposta DougKauf terça-feira, 23 de fevereiro de 2010 21:17
    terça-feira, 23 de fevereiro de 2010 21:17
  • Pode crer.

    Falow.
    quarta-feira, 24 de fevereiro de 2010 14:07