GRAVAR FORMATO MOEDA MYSQL
Estou tendo muitos problemas em calcular valores no vb.net, e gostaria de saber se qual a melhor forma para trabalhar com valores, (percentagem, multiplicação, soma....) tenho tido muitos problemas com o erro:
Conversion from string [Ô] XXXX [Ô] to type [ô]Double[ô] is not valid.
Queria opniao de qual a melhor forma para trabalhar com valores, eu pensei da seguinte forma, será que teria problema se os valores no formato moeda fossem todos gravados em um campo [Ô]varchar[Ô] no meu banco MYSQL?
Obrigado
Conversion from string [Ô] XXXX [Ô] to type [ô]Double[ô] is not valid.
Queria opniao de qual a melhor forma para trabalhar com valores, eu pensei da seguinte forma, será que teria problema se os valores no formato moeda fossem todos gravados em um campo [Ô]varchar[Ô] no meu banco MYSQL?
Obrigado
eu trabalho com o campo tipo double
No começo tambem gravava o tipo moeda como varchar
Um dia precisei mostrar a soma das compras de todos os clientes por cliente em um datagrid em um determinado tempo e com varchar não somava.Quando mudei para double funcionou perfeito
No começo tambem gravava o tipo moeda como varchar
Um dia precisei mostrar a soma das compras de todos os clientes por cliente em um datagrid em um determinado tempo e com varchar não somava.Quando mudei para double funcionou perfeito
Mas tenho tido muito problemas com esse erro:
Conversion from string [Ô] XXXX [Ô] to type [ô]Double[ô] is not valid.
Como que eu posso evita-lo?
Conversion from string [Ô] XXXX [Ô] to type [ô]Double[ô] is not valid.
Como que eu posso evita-lo?
Tem algum campo que está vazio
Coloca a rotina que está dando o erro
Coloca a rotina que está dando o erro
na verdade voce esta fazendo uma conversao de string para Double e tem algum character invalido ai nessa situação. por isso ele nao converte e apresenta o erro !
Cola ai um trexo do codigo para visualizarmos melhor !
Abraços
Cola ai um trexo do codigo para visualizarmos melhor !
Abraços
Ah sim, entendi a parte [Ô] conversao de string para Double [Ô] realmente estou fazendo isso, abaixo segue uma das linhas que está dando erro
a percentagem3_inss é uma string.
Então como que eu devo fazer para parar de ocorrer esse erro?
Dim faixa1_inss As String
Dim faixa2_inss As String
Dim faixa3_inss As String
Dim percentagem1_inss As String
Dim percentagem2_inss As String
Dim percentagem3_inss As String
Dim command As New MySql.Data.MySqlClient.MySqlCommand([Ô]SELECT * FROM tb_inss[Ô], GetConexao1)
Dim reader As MySql.Data.MySqlClient.MySqlDataReader
reader = command.ExecuteReader()
While reader.Read()
faixa1_inss = reader([Ô]faixa1[Ô])
faixa2_inss = reader([Ô]faixa2[Ô])
faixa3_inss = reader([Ô]faixa3[Ô])
percentagem1_inss = ([Ô]percentual_faixa1[Ô])
percentagem2_inss = reader([Ô]percentual_faixa2[Ô])
percentagem3_inss = ([Ô]percentual_faixa3[Ô])
End While
reader.Close()
command.Dispose()
base_inss.Text = valor_frete.Text / 100 * 20 * percentagem3_inss
a percentagem3_inss é uma string.
Então como que eu devo fazer para parar de ocorrer esse erro?
Tenta assim... Se os valores forem numéricos, efetuará o cálculo, senão apenas zera o texto.
If IsNumeric(valor_frete.Text) And IsNumeric(percentagem3_inss.Text) Then
base_inss.Text = Convert.ToDecimal(valor_frete.Text) / 100 * 20 * Convert.ToDecimal(percentagem3_inss)
Else
base_inss.Text = [Ô]0,00[Ô]
End If
Jonathan valeu... resolveu meu problema....
obrigado.
obrigado.
Meu banco Mysql, os campos com valores o formato dos campos é DOUBLE, os valores gravam nele normal, só que ele não grava moedas apenas os números inteiros Ex: 100,2500 ele grava 100,0000. Entrei no banco e entendi o que acontece, se as casas decimais forem separadas por [Ô].[Ô] ele aceita, mas os campos são calculados com no form com virgula [Ô],[Ô] separando os centavos.
Faça um tratamento desse valor antes de inserir no banco.
Valor.ToString.Replace([Ô],[Ô], [Ô].[Ô])
Tópico encerrado , respostas não são mais permitidas