none
Erro ao deletar do bd de acordo com o codigo do gridview RRS feed

  • Pergunta

  • estou querendo faze o seguinte eu abri um form pra excluir cliente a aparece o gridview quando eu click em algum nome ou codigo ele pergunta se deseja deletar esse codigo de acordo com bd mais ta dando errado.

    estou usando esse comando
    OleDbCommand delete = new OleDbCommand("DELETE * FROM clientes WHERE codigo = '" + dataGridView1.Rows + "' ", conexao);
    porem descobri q o dataGridView1.Rows é invalido para isso alguem pederia me ajudar?
    sábado, 14 de novembro de 2009 19:16

Respostas

  • Olá

    Pense comigo: voce precisa do VALOR da COLUNA correspondente ao código de UMA UNICA LINHA, certo?

    Sendo assim, não há o menor sentido em se fazer grid.Rows, pois neste voce tem o CONJUNTO DE LINHAS do grid.

    Resposta:

    if (dataGridView1.SelectedRows.Count > 0)
        dataGridView1.CurrentCell.OwningRow.Cells["Codigo"].Value .ToString()

    onde:
    - "Codigo" deve ser o nome da coluna desejada.
    - usei o ToString() para converter o valor para string
    ----------------------------------------------------------------

    Porém, deve-se alertar que instruções sql não devem ser montadas do jeito que está fazendo, concatenando com as variáveis). Isso é uma má prática. Assim seu código fica mais sujeito a erros e vulnerável a SQL Injection.

    Dê uma pesquisada sobre isso. Aqui no fórum tem milhares de posts usando PARAMETROS nas consultas.

    []s
    Robson Castilho - MCTS .Net 2.0 Windows/Web Applications [Se o post foi útil, não esqueça de marcá-lo. Obrigado]
    • Marcado como Resposta _Rafael domingo, 15 de novembro de 2009 04:15
    sábado, 14 de novembro de 2009 23:14

Todas as Respostas

  • Olá

    Pense comigo: voce precisa do VALOR da COLUNA correspondente ao código de UMA UNICA LINHA, certo?

    Sendo assim, não há o menor sentido em se fazer grid.Rows, pois neste voce tem o CONJUNTO DE LINHAS do grid.

    Resposta:

    if (dataGridView1.SelectedRows.Count > 0)
        dataGridView1.CurrentCell.OwningRow.Cells["Codigo"].Value .ToString()

    onde:
    - "Codigo" deve ser o nome da coluna desejada.
    - usei o ToString() para converter o valor para string
    ----------------------------------------------------------------

    Porém, deve-se alertar que instruções sql não devem ser montadas do jeito que está fazendo, concatenando com as variáveis). Isso é uma má prática. Assim seu código fica mais sujeito a erros e vulnerável a SQL Injection.

    Dê uma pesquisada sobre isso. Aqui no fórum tem milhares de posts usando PARAMETROS nas consultas.

    []s
    Robson Castilho - MCTS .Net 2.0 Windows/Web Applications [Se o post foi útil, não esqueça de marcá-lo. Obrigado]
    • Marcado como Resposta _Rafael domingo, 15 de novembro de 2009 04:15
    sábado, 14 de novembro de 2009 23:14
  • vlw ai vo tenta fazer usando parametros é que eu achei que assim daria :)
    domingo, 15 de novembro de 2009 04:34