none
Update de vários registros em uma tabela com dados de uma list<> C# RRS feed

  • Pergunta

  • Boa noite amigos!

    Estou com problema neste código aqui.

    Estou tentando faze um update de vários registros em uma tabela, com dados de list<>.

    talvez a list<> não seja o mais indicado para fazer isso, não sei..

    Mais código abaixo está setando os campos do bd do tipo int como 0

    Estou utilizando o mysql.

    código uma classe para acessar dados.. Dall

             

    try
                {
                    MySqlCommand COMANDO = new MySqlCommand("UPDATE PRODUTO SET QTD_PROD=@QTDPROD-@QTDPROD                      WHERE ID_PROD=@IDPROD", conectar.BaseConect());
                    COMANDO.Parameters.AddWithValue("@IDPROD", ProdutoModelo.IdProduto);
                    COMANDO.Parameters.AddWithValue("@QTDPROD", ProdutoModelo.QuantidadeProduto);
                    COMANDO.ExecuteNonQuery();

                }

    Código GUI

    private void metroButton1_Click(object sender, EventArgs e)
            {
                List<int> codigo = new List<int>();
                List<int> valor = new List<int>();

                ProdutoBll prod = new ProdutoBll();
                ProdutoeModelo mod = new ProdutoeModelo();
                
                for (int i = 0; i < codigo.Count; i++)
                {
                    cod = Convert.ToInt32(txtCodigovenda.Text);
                    val = Convert.ToInt32(txtQuantidade.Text) * 100; 

                    codigo.Add(cod);
                    valor.Add(val);


                    mod.IdProduto = codigo[i];
                    mod.ValorProduto =valor[i];

                    prod.AtualizarValorProduto(mod)

    terça-feira, 31 de outubro de 2017 23:01

Respostas

  • Saudações.

    Poste a Classe AtualizarValorProduto();
    Sem saber o que ela faz antes do try fica difícil identificar o erro.

    Me parece que não foi tratado o caso de você criar uma lista e passar ela inteira para o banco.
    O correto seria passar indice por indice.
    Isso eu digo porque não ví o código que está faltando.
    É necessário mesmo utilizar List em  codigo e valor?

    Tente mudar eles para int para ver se funciona:
    No lugar de:

    List<int> codigo = new List<int>();
    List<int> valor = new List<int>();

    Coloque para testar:

    int valor;
    int codigo;
    Atenciosamente,
    ____________________________________
    Agnaldo Guimarães

    Se te ajudei, sinalize como "útil" e lembre-se de "marcar como resposta".
    Quando você marca como resposta os outros visitantes encontram a solução facilmente.

    ** Para que o mau prevaleça basta que os bons não façam nada....

    quarta-feira, 1 de novembro de 2017 08:33

Todas as Respostas

  • Saudações.

    Poste a Classe AtualizarValorProduto();
    Sem saber o que ela faz antes do try fica difícil identificar o erro.

    Me parece que não foi tratado o caso de você criar uma lista e passar ela inteira para o banco.
    O correto seria passar indice por indice.
    Isso eu digo porque não ví o código que está faltando.
    É necessário mesmo utilizar List em  codigo e valor?

    Tente mudar eles para int para ver se funciona:
    No lugar de:

    List<int> codigo = new List<int>();
    List<int> valor = new List<int>();

    Coloque para testar:

    int valor;
    int codigo;
    Atenciosamente,
    ____________________________________
    Agnaldo Guimarães

    Se te ajudei, sinalize como "útil" e lembre-se de "marcar como resposta".
    Quando você marca como resposta os outros visitantes encontram a solução facilmente.

    ** Para que o mau prevaleça basta que os bons não façam nada....

    quarta-feira, 1 de novembro de 2017 08:33
  • Valeu... Muito Obrigado!

    Problema Resolvido..

    Tinha um pequeno erro no comando mysql.


    quarta-feira, 1 de novembro de 2017 17:58