none
DELETE E UPDATE num mesmo método RRS feed

  • Pergunta

  • Pessoal, quero excluir um registro e, no mesmo processo, atualizar outro. Fiz o código abaixo, mas não está fazendo isso. Vejam:

            private void btnRemover_Click(object sender, EventArgs e)
            {
                string stringConexao = mtds.caminhoBD();
                OleDbConnection conexao = new OleDbConnection(stringConexao);
                conexao.Open();
                OleDbCommand cmdd = new OleDbCommand();
                string colunaQtdeVenda = this.dgvPedido.Rows[dgvPedido.CurrentRow.Index].Cells[3].Value.ToString();
                string colunaQtdeEstoque = this.dgvPedido.Rows[dgvPedido.CurrentRow.Index].Cells[4].Value.ToString();

                cmdd.CommandText = "delete from Temp_vendas where codISBN = @codISBN";
                cmdd.Parameters.AddWithValue("@codISBN", this.mtbISBN.Text);
                cmdd.Connection = conexao;
                cmdd.ExecuteNonQuery();
               
                cmdd.CommandText = "UPDATE Titulos SET Titulos.qtde = @qtde WHERE Titulos.isbn = @codISBN";
                cmdd.Parameters.AddWithValue("@qtde", colunaQtdeEstoque);
                cmdd.Parameters.AddWithValue("@codISBN", this.mtbISBN.Text);
                cmdd.Connection = conexao;
                cmdd.ExecuteNonQuery();

                conexao.Close();
                atualizaDataGridView();

    }


    Insistir sempre, desistir jamais!
    sexta-feira, 25 de novembro de 2011 00:47

Respostas

  • Olá Junior,


    Sua sintaxe esta correta, me parace que a sua clausula WHERE do comando UPDATE não esta encontrando registros com valores do campo isbn com os valores exigidos...

    O bloco de exclusão de registros esta funcionando ok?

    Olhe o tipo da coluna isbn se está correto...

     

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Marcado como Resposta JuniorCS sexta-feira, 25 de novembro de 2011 17:45
    sexta-feira, 25 de novembro de 2011 01:50

Todas as Respostas

  • Olá Junior,

    Algum erro é disparado?

    Tente colocar uma linha criando uma nova instância para cmdd entre as duas execuções de comando no banco, desta forma:

     

      string stringConexao = mtds.caminhoBD();
                OleDbConnection conexao = new OleDbConnection(stringConexao);
                conexao.Open();
                OleDbCommand cmdd = new OleDbCommand();
                string colunaQtdeVenda = this.dgvPedido.Rows[dgvPedido.CurrentRow.Index].Cells[3].Value.ToString();
                string colunaQtdeEstoque = this.dgvPedido.Rows[dgvPedido.CurrentRow.Index].Cells[4].Value.ToString();
    
                cmdd.CommandText = "delete from Temp_vendas where codISBN = @codISBN";
                cmdd.Parameters.AddWithValue("@codISBN", this.mtbISBN.Text);
                cmdd.Connection = conexao;
                cmdd.ExecuteNonQuery();
    
               cmdd = new OleDbCommand();
    
                cmdd.CommandText = "UPDATE Titulos SET Titulos.qtde = @qtde WHERE Titulos.isbn = @codISBN";
                cmdd.Parameters.AddWithValue("@qtde", colunaQtdeEstoque);
                cmdd.Parameters.AddWithValue("@codISBN", this.mtbISBN.Text);
                cmdd.Connection = conexao;
                cmdd.ExecuteNonQuery();
    
                conexao.Close();
                atualizaDataGridView();
    


     

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Sugerido como Resposta Vitor Mendes sexta-feira, 25 de novembro de 2011 01:44
    sexta-feira, 25 de novembro de 2011 01:25
  • Cara, não rolou! Não aparece nenhum msg de erro, mas não atualiza. Já debuguei essa parte do código e parece que as variáveis estã passando valores corretos.
    Insistir sempre, desistir jamais!
    sexta-feira, 25 de novembro de 2011 01:46
  • Olá Junior,


    Sua sintaxe esta correta, me parace que a sua clausula WHERE do comando UPDATE não esta encontrando registros com valores do campo isbn com os valores exigidos...

    O bloco de exclusão de registros esta funcionando ok?

    Olhe o tipo da coluna isbn se está correto...

     

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Marcado como Resposta JuniorCS sexta-feira, 25 de novembro de 2011 17:45
    sexta-feira, 25 de novembro de 2011 01:50
  • Fernando, deu certo! Não sei o que tinha acontecido antes, mas agora o código está excluindo/atualizando nromalmente. Cara, valeu pela força! Abração!
    Insistir sempre, desistir jamais!
    sexta-feira, 25 de novembro de 2011 17:44