none
WINDOWS FORM - DECIMAL RRS feed

  • Pergunta

  • Boa Noite, no código abaixo, faço primeiro uma verificação se não existe valor de desconto lançado na tabela contra cheque cujo código da conta seja igual a 12, caso não exista efetuo o insert, só que está dando o erro abaixo, na coluna proventos (no banco é do tipo decimal) que quero que seja incluído o valor de 0,00

     

    Alguém poderia me ajudar a descobrir onde está o erro?

     

    private void valorDoInss()

            {

                if (txtSalContrTotal.Text != "" || txtSalContrTotal.Text!= null)

                {

                    valorInss = decimal.Parse(txtSalContrTotal.Text) * 11 / 100;

                    SqlConnection conexao = new SqlConnection(@"server=.\sqlexpress;Database = banco; Integrated Security = SSPI");

                    SqlCommand cmd = new SqlCommand("select descontos from contraCheque where codSalario = 12 and dataPagto ='" + lblDataCredito.Text + "'", conexao);

                    conexao.Open();

                    cmd.ExecuteNonQuery();

                    SqlDataAdapter da = new SqlDataAdapter(cmd);

                    DataTable Dt = new DataTable();

                    da.Fill(Dt);

     

                    if (Dt.Rows.Count == 0)

                    {

                        //Sintaxe incorreta próxima a ','."  Sintaxe incorreta próxima a ','.

                        comando = new SqlCommand("INSERT INTO ContraCheque (codMes,codAno, codSalario, proventos,descontos, dataPagto) VALUES ('" + int.Parse(txtCodMes.Text) + "','" + int.Parse(txtCodAno.Text) + "', 12 ,(N'Somestring', 0.0),'" + valorInss + "','" + lblDataCredito.Text + "')");

                        comando.Connection = conexao;

                        comando.ExecuteNonQuery();

                    }

                    

                }

                else

                {

                    MessageBox.Show("Informe o valor do salário", "Contra Cheque");

                }

     

            }

     

    ERRO:

    Sintaxe incorreta próxima a '0.0'.

                       

    quarta-feira, 26 de março de 2014 01:15

Respostas

  • Olá o erro está na sua query o modo de inserir use parametros, que evita estes erros de aspas simples refatore p algo assim :

    comando = new SqlCommand("INSERT INTO ContraCheque(codMes,codAno,codSalario,proventos,descontos,dataPagto) VALUES (@codMes,@codAno,@codSalario,@proventos,@descontos,@dataPagto)");
    
    comando.Parameters.AddWithValue("@codMes",int.Parse(txt));
    comando.Parameters.AddWithValue("@codAno",int.Parse(txtAno.Text));
    comando.Parameters.AddWithValue("@codSalario",200);
    comando.Parameters.AddWithValue("@proventos",0.0);
    comando.Parameters.AddWithValue("@descontos",0.0);
    comando.Parameters.AddWithValue("@dataPagto",Convert.ToDateTime(lblDataCredito.Text));
    
    

    • Marcado como Resposta DilsonDG quinta-feira, 27 de março de 2014 12:38
    quarta-feira, 26 de março de 2014 01:53