Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

samuelesoares

C# Firebird e Valores decimais

Recommended Posts

Tenho uma tabela no banco de dados firebird com o campo pro_preco_venda decimal (10,2).

 

Quando tento inserir valores com casas decimais através da aplicação retorna um erro de conversão de string. Exemplo que dá o erro: 10,56.

 

Se eu tentar substituir a vírgula por ponto (10.56), o registro é salvo mas com o valor sem o ponto (1056).

 

Quando eu insiro o registro diretamente no firebird ele aceita a vírgula.

 

Como resolver isto?

 

Código c#:

 

// A variável é declarada como decimal

decimal _custo;

 

...

 

strSql.Append("pro_preco_custo = '" . _custo . "', ");

 

...

 

Como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você deve fazer é isso:

 

string valor = "1.500,30";//declara variavel
valor = valor.Replace(".","");//troca (ponto) por vazio
valor = valor.Replace(",",".");//troca (virgula) por (ponto)

E você manda essa string pro seu banco.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você deve fazer é isso:

 

string valor = "1.500,30";//declara variavel
valor = valor.Replace(".","");//troca (ponto) por vazio
valor = valor.Replace(",",".");//troca (virgula) por (ponto)

 

E você manda essa string pro seu banco.

 

Abraços...

 

Isto não resolve. Estou com o mesmo problema que o amigo que iniciou o tópico.

Mesmo usando replace para retirar os pontos e deixar apenas um ponto no lugar da virgula, o mysql não salva o valor com o ponto.

Exemplo: se enviar o numero "2.50" para o banco, o mesmo armazena da seguinte forma: "250".

 

Como fazer para que o mysql armazeno o ponto e assim didentificarmos os centavos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.