none
rowdeleting c# com asp.net RRS feed

  • Pergunta

  • galera, a minha dúvida é a seguinte, eu inseri uma command field delete no gridview e inseri uma

    gvConsultaUsuario_RowDeleting no código c#, eu queria saber como eu faço para o botão delete apagar apenas a linha que ele está, como faço para passar o parâmetro da linha que ele está pelo id por exemplo apenas clicando em delete, obrigado.

    tentei mais um pouco e está dando esse erro...

    " O índice estava fora do intervalo. Ele deve ser não-negativo e menor que o tamanho da coleção."

    protected void gvConsultaUsuario_RowDeleting(object sender, GridViewDeleteEventArgs e)
            {
                    conn.Open();
                    string query = "DELETE FROM tb_CadastroUsuario WHERE ID = @ID";
    
                    try
                    {
                        //Passando parametros
                        cmd.Parameters.Add("@ID", gvConsultaUsuario.DataKeys[e.RowIndex].Values["id"].ToString());
                        //Instancia do SqlCeCommand
                        cmd = new SqlCeCommand(query, conn);
                        cmd.ExecuteNonQuery();
                    }  
                    catch
                    {
                        Response.Write("erro");
                    }
            }   







    domingo, 9 de dezembro de 2012 22:36

Respostas

  • Olá Vitor!

    Eu acho que você esta capturando o valor erroneamente. Uso a seguinte expressão: 

    string id = this.gvProduto.Rows[e.RowIndex].Cells[0].Text;

    Portanto meu método OnDeleting fica assim:

    protected void OnDeleting(object sender, GridViewDeleteEventArgs e)
    {
       string id = this.gvProduto.Rows[e.RowIndex].Cells[0].Text;
    
       idb.ExcluirPedido(id);
       db.Excluir(new Pedido() { Codigo = int.Parse(id) });
       UpdateGrid();
    }

    Espero ter ajudado :D

    • Sugerido como Resposta marcos alves segunda-feira, 10 de dezembro de 2012 15:31
    • Marcado como Resposta Vitor Myra Moreira segunda-feira, 10 de dezembro de 2012 20:18
    segunda-feira, 10 de dezembro de 2012 10:17

Todas as Respostas

  • Olá Vitor!

    Eu acho que você esta capturando o valor erroneamente. Uso a seguinte expressão: 

    string id = this.gvProduto.Rows[e.RowIndex].Cells[0].Text;

    Portanto meu método OnDeleting fica assim:

    protected void OnDeleting(object sender, GridViewDeleteEventArgs e)
    {
       string id = this.gvProduto.Rows[e.RowIndex].Cells[0].Text;
    
       idb.ExcluirPedido(id);
       db.Excluir(new Pedido() { Codigo = int.Parse(id) });
       UpdateGrid();
    }

    Espero ter ajudado :D

    • Sugerido como Resposta marcos alves segunda-feira, 10 de dezembro de 2012 15:31
    • Marcado como Resposta Vitor Myra Moreira segunda-feira, 10 de dezembro de 2012 20:18
    segunda-feira, 10 de dezembro de 2012 10:17
  • Opa tudo bom?

    Como você ta construindo a grid?

    Ta colocando que datakeys?

    se tiver uma datakey é assim:

    int id = (int)grdQuestions.DataKeys[e.RowIndex].Value;


    http://marcoscavaleiro.blogspot.com MCTS

    • Sugerido como Resposta marcos alves segunda-feira, 10 de dezembro de 2012 15:31
    • Não Sugerido como Resposta marcos alves segunda-feira, 10 de dezembro de 2012 15:31
    segunda-feira, 10 de dezembro de 2012 14:08
  • pow galera, obrigado à todos, mas para o Bruno Curbani Goettmann, sem palavras, foi igual carro novo, bateu, pegou, joguei o código e pimba, na hora, fiquei o fim de semana inteiro para fazer isso para o cara em uma linha resolver meu problema, vocês são muito bacanas, obrigado.
    segunda-feira, 10 de dezembro de 2012 15:19