none
Ajuda com código c# RRS feed

  • Pergunta

  • Estou fazendo um programa no qual possuo dados em um checkedbox1, quero que ao clicar no botão ele selecione os dados especificos do checkedbox e atualize na base de dados, mas está dando o erro {"There was an error parsing the query. [ Token line number = 1,Token line offset = 50,Token in error = ID_produto ]"} 

    Segue o código que estou utilizando: 

      SqlCeConnection Ligação = new SqlCeConnection("Data source =" + vars.base_dados);
                    Ligação.Open();
                    decimal valorTotal = 0;
    
                    Regex rgx = new Regex(@"Quantidade (\d)");
    
    
                    foreach (string linha in checkedListBox1.Items)
                        valorTotal = decimal.Parse(rgx.Match(linha).Groups[1].Value);
    
                    decimal valorTotal2 = 0;
                    Regex rgx2 = new Regex(@"ID (\d)");
    
    
                    foreach (string linha in checkedListBox1.Items)
                        valorTotal2 = decimal.Parse(rgx2.Match(linha).Groups[1].Value);
    
                    SqlCeCommand comando = new SqlCeCommand();
                    comando.Connection = Ligação;
                    comando.Parameters.AddWithValue("@Quantidade", valorTotal);
                    comando.Parameters.AddWithValue("@ID_produto", valorTotal2);
    
                    comando.CommandText = "UPDATE estoque SET " +
                                                 "Quantidade = @Quantidade" +
                                                 "WHERE ID_produto = @ID_produto";
    
                    comando.ExecuteNonQuery();
                    Ligação.Dispose();
                
    Segue também a imagem na base de dados das minhas colunas
    segunda-feira, 3 de abril de 2017 19:08

Respostas

Todas as Respostas

  • Oi ,
    As váriaveis que vocÊ está declarando no c# são decimal.No Sql Server, está como int32.Experimente declarar as variaveis como int32 ou converter na linha que você da o AddWithValue.

    Att,

    Se a resposta for relevante,click em "útil".Se a resposta resolveu seu problema, click em "Marcar como Resposta".
    Rodrigo Suleiman [MCP,MCTS,MCPD,MCSA,MCSD]

    segunda-feira, 3 de abril de 2017 19:47
  • DecaDrawings,


    comando.CommandText = "UPDATE estoque SET " +
                                                 "Quantidade = @Quantidade " +
                                                 "WHERE ID_produto = @ID_produto";







    segunda-feira, 3 de abril de 2017 21:54
  • Olá, obrigado pela dica, está dando certo até um ponto vou mandar uma imagem para explicar o que está acontecendo agora

    Ao clicar em concluir ele só atualiza a ultima linha da checkedlistBox a primeira era ignora, quero que ele atualize todas as linhas, inclusive a primeira, segue como fica a atualização:

    ele só atualizou o ultimo item, tem como me ajudar? Já sou muito grato por ter respondido, Boa noite!

    segunda-feira, 3 de abril de 2017 22:48
  • Boa tarde DecaDrawings,

    Mas isso ocorre mesmo selecionando todas as check boxes?

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 6 de abril de 2017 16:55
    Moderador