Usuário com melhor resposta
Update de vários registros em uma tabela com dados de uma list<> C#

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)
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....
- Editado Agnaldo Guimarães quarta-feira, 1 de novembro de 2017 08:34
- Marcado como Resposta Filipe B CastroModerator quarta-feira, 1 de novembro de 2017 11:21
- Não Marcado como Resposta Paulo Césa quarta-feira, 1 de novembro de 2017 17:50
- Marcado como Resposta Paulo Césa quarta-feira, 1 de novembro de 2017 17:51
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....
- Editado Agnaldo Guimarães quarta-feira, 1 de novembro de 2017 08:34
- Marcado como Resposta Filipe B CastroModerator quarta-feira, 1 de novembro de 2017 11:21
- Não Marcado como Resposta Paulo Césa quarta-feira, 1 de novembro de 2017 17:50
- Marcado como Resposta Paulo Césa quarta-feira, 1 de novembro de 2017 17:51
-