none
Erro ao usar o Update No C# RRS feed

  • Pergunta

  •  

    ESSA METODO PASSA O COMANDO SQL E CHAMA O CONECTOR!

     public bool Altera(Agenda Cli)
            {
                StringBuilder ConcatenaComando = new StringBuilder();
                ConcatenaComando.Append("UPDATE tbagenda SET ");

                ConcatenaComando.Append(string.Format("Nome =      '{0}',",Cli.Nome));
                ConcatenaComando.Append(string.Format("Logradouro ='{0}',",Cli.Logradouro));
                ConcatenaComando.Append(string.Format("Numero =    '{0}',",Cli.Numero));
                ConcatenaComando.Append(string.Format("Bairro =    '{0}',",Cli.Bairro));
                ConcatenaComando.Append(string.Format("Cidade =    '{0}',",Cli.Cidade));
                ConcatenaComando.Append(string.Format("Estado =    '{0}',",Cli.Estado));
                ConcatenaComando.Append(string.Format("Telefone =  '{0}',",Cli.Telefone));
                ConcatenaComando.Append(string.Format("Celular =   '{0}',",Cli.Celular));
                ConcatenaComando.Append(string.Format("Email =     '{0}',",Cli.Email));

                ConcatenaComando.Append(string.Format("WHERE  id = '{0}'", Cli.Id));
                bool Retorno = Conectar.ExecutaComando(ConcatenaComando.ToString());
                return Retorno;
            }

    ESSE É O CODIGO DO MEU BOTÃO , NÃO DA NENHUM ERRO MAIS NÃO ALTERA!
            private void btn_Aleterar_Click(object sender, EventArgs e)
            {
                HabilitaCampos();
                obj_ComandosSql.Altera(obj_Agenda);
                RecarregaGrid();

            }

    segunda-feira, 2 de junho de 2014 20:10

Respostas

  • Mike Lime, boa tarde,

    Repare que você está passando um ID, como string na cláusula WHERE, tente tirar as aspas, fazendo desta forma:

    ConcatenaComando.Append(string.Format("WHERE  id = '{0}'", Cli.Id)); //ERRADO
    ConcatenaComando.Append(string.Format("WHERE  id = {0}", Cli.Id)); //CORRETO

    E se o campo Numero estiver como inteiro no banco de dados, está com o mesmo erro na string query.

    Abraços


    • Editado Levi Natanael terça-feira, 3 de junho de 2014 16:35
    • Sugerido como Resposta Levi Natanael terça-feira, 3 de junho de 2014 16:35
    • Marcado como Resposta Mike Lima quinta-feira, 3 de julho de 2014 12:49
    terça-feira, 3 de junho de 2014 16:34

Todas as Respostas

  • Mike Lime, boa tarde,

    Repare que você está passando um ID, como string na cláusula WHERE, tente tirar as aspas, fazendo desta forma:

    ConcatenaComando.Append(string.Format("WHERE  id = '{0}'", Cli.Id)); //ERRADO
    ConcatenaComando.Append(string.Format("WHERE  id = {0}", Cli.Id)); //CORRETO

    E se o campo Numero estiver como inteiro no banco de dados, está com o mesmo erro na string query.

    Abraços


    • Editado Levi Natanael terça-feira, 3 de junho de 2014 16:35
    • Sugerido como Resposta Levi Natanael terça-feira, 3 de junho de 2014 16:35
    • Marcado como Resposta Mike Lima quinta-feira, 3 de julho de 2014 12:49
    terça-feira, 3 de junho de 2014 16:34
  • Mike Lime, boa tarde,

    Repare que você está passando um ID, como string na cláusula WHERE, tente tirar as aspas, fazendo desta forma:

    ConcatenaComando.Append(string.Format("WHERE  id = '{0}'", Cli.Id)); //ERRADO
    ConcatenaComando.Append(string.Format("WHERE  id = {0}", Cli.Id)); //CORRETO

    E se o campo Numero estiver como inteiro no banco de dados, está com o mesmo erro na string query.

    Abraços


    Lembrando que da forma que está construido sua query, ela ocupa mais memória na base de dados, dependendo de quantas vezes for executar ela usando uma mesma conexão.

    Tente fazer utilzando SqlParameter no SqlCommand.



    terça-feira, 3 de junho de 2014 16:36