none
Erro na formatação de valores monetários RRS feed

  • Pergunta

  • Ao gravar um valor monetário no SQL Server, por exemplo, o valor 100.50 é gravado como 10050.00

    Veja o meu código:

    SqlConnection cnx = new SqlConnection(metodos.conectaBD());
    SqlCommand cmd; 

    double valor = Convert.ToDouble(tbValor.Text);

    cmd = new SqlCommand("INSERT INTO orcamentos VALUES (" + codigo_orc + "," + codigo_cl + ",'" + hoje.ToString("yyyy-MM-dd") + "'," + valor + ",'" + data_venc.ToString("yyyy-MM-dd") + "')", cnx);

    No banco de dados o campo "valor" é do tipo money. Alguém poderia me auxiliar nesse problema?

    Obrigado.


    A persistência e determinação são, por si sós, onipotentes.

    terça-feira, 17 de junho de 2014 14:53

Respostas

Todas as Respostas

  • nunca testei com money, mas verifique se "float" resolve.

    por default, float trata com virgula e double com ponto as casas decimais. Talvez seja isso.

    terça-feira, 17 de junho de 2014 15:15
  • Cara usa o decimal esse é o valor correto para utilização do formato moeda para o banco de dados.

    E você pode usar o 

    String.Format("{0:C}",sua_variavel_decimal);

    para jogar o valor de moeda no banco

    • Sugerido como Resposta Raniel Nogueira quarta-feira, 18 de junho de 2014 14:44
    • Não Sugerido como Resposta Raniel Nogueira quarta-feira, 18 de junho de 2014 14:44
    terça-feira, 17 de junho de 2014 21:16
  • Faz assim fera:

    decimal valor = String.Formt("{0:C}",Convert.ToDecimal(tbValor.Text));


    terça-feira, 17 de junho de 2014 21:18