Jump to content

Inserção de campo double no banco de dados


Go to solution Solved by Felipe Machado,

Recommended Posts

Posted

Boa tarde gostaria de saber como inserir valor do tipo double no banco de dados

números inteiros estão indo normalmente mas quando vem a bendita  virgula (",")

http://image.prntscr.com/image/b8fac8b7ef714f58be4568599b92a032.png

o programa gera um erro

Citação

You have an error in your SQL syntax; check the manual that correspondes to your MariaDB server version for the right syntax to use near '9 where codigobarra = 70040040053' at line 1

Já tentei usar replace(",",".")

Mas ele retorna como numero inteiro

connection()
        Dim val As Double
        val = Valor.Text.Replace(",", ".")

        Try
            SQL = "UPDATE produtos set quantidade = " & val & " where codigobarra = " & Codigo.Text & ""
            cmd = New MySqlCommand(SQL, conn)
            cmd.ExecuteNonQuery()
            MsgBox(val)
            cmd = Nothing
        Catch ex As MySqlException
            MsgBox(ex.Message)
        End Try

        conn.Close()
        quant = Nothing
        val = Nothing

Se alguém puder me ajudar agradeceria muito.

Posted

Boa noite,

Creio que isso se prende com as definições regionais do sistema operativo "regional settings"



connection()
        Dim val As Double
        ''val = Valor.Text.Replace(",", ".")
        double val = double.Parse(Valor.Text, NumberStyles.AllowDecimalPoint, CultureInfo.CurrentCulture); //parse com uso das regional settings"
        Try
            SQL = "UPDATE produtos set quantidade = " & val & " where codigobarra = " & Codigo.Text & ""
            cmd = New MySqlCommand(SQL, conn)
            cmd.ExecuteNonQuery()
            MsgBox(val)
            cmd = Nothing
        Catch ex As MySqlException
            MsgBox(ex.Message)
        End Try

        conn.Close()
        quant = Nothing
        val = Nothing

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Posted
20 horas atrás, apocsantos disse:

Boa noite,

Creio que isso se prende com as definições regionais do sistema operativo "regional settings"




connection()
        Dim val As Double
        ''val = Valor.Text.Replace(",", ".")
        double val = double.Parse(Valor.Text, NumberStyles.AllowDecimalPoint, CultureInfo.CurrentCulture); //parse com uso das regional settings"
        Try
            SQL = "UPDATE produtos set quantidade = " & val & " where codigobarra = " & Codigo.Text & ""
            cmd = New MySqlCommand(SQL, conn)
            cmd.ExecuteNonQuery()
            MsgBox(val)
            cmd = Nothing
        Catch ex As MySqlException
            MsgBox(ex.Message)
        End Try

        conn.Close()
        quant = Nothing
        val = Nothing

Cordiais cumprimentos,

Apocsantos

Obrigado pela resposta.

está dando erro, 

http://image.prntscr.com/image/841573990ef64c33a734a0a9cf3bce9d.png

Estou usando visual basic 2010 epress

Posted

Boa tarde,

Falta no inicio do código o imports

Imports System.Globalization

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Posted

Boa tarde,

Ok, nesse caso o Mysql aparentemente estará a usar o "." como caracter de separação decimal e o sistema operativo o ","  .

 

Imports System.Globalization

connection()
        Dim val As Double
        ''val = Valor.Text.Replace(",", ".")
        double val = double.Parse(Valor.Text, NumberStyles.AllowDecimalPoint, new NumberFormatInfo() { NumberDecimalSeparator = "." }); //parse forçando o caracter decimal a ser o ponto
        Try
            SQL = "UPDATE produtos set quantidade = " & val & " where codigobarra = " & Codigo.Text & ""
            cmd = New MySqlCommand(SQL, conn)
            cmd.ExecuteNonQuery()
            MsgBox(val)
            cmd = Nothing
        Catch ex As MySqlException
            MsgBox(ex.Message)
        End Try

        conn.Close()
        quant = Nothing
        val = Nothing

Não deve estar muito longe disto, mas não tive oportunidade de testar.

 

Outra alternativa

 

Imports System.Globalization


NumberFormatInfo nfi = new NumberFormatInfo();
nfi.NumberDecimalSeparator = ".";

connection()
        Dim val As Double
        ''val = Valor.Text.Replace(",", ".")
        double val = double.Parse(Valor.Text, NumberStyles.AllowDecimalPoint, new NumberFormatInfo() { NumberDecimalSeparator = "." }); //parse forçando o caracter decimal a ser o ponto
val.ToString(nfi); //força o ponto a ser o separador decimal

Try
            SQL = "UPDATE produtos set quantidade = " & val & " where codigobarra = " & Codigo.Text & ""
            cmd = New MySqlCommand(SQL, conn)
            cmd.ExecuteNonQuery()
            MsgBox(val)
            cmd = Nothing
        Catch ex As MySqlException
            MsgBox(ex.Message)
        End Try

        conn.Close()
        quant = Nothing
        val = Nothing

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

  • Solution
Posted

Olá Boa tarde desculpa pela demora na resposta.

é o seguinte minha query estava errada.

connection()
        Dim val As Double
        

Try							'O erro está aqui estava mandando alterar quantidade em vez do valor'	
  			'SQL = "UPDATE produtos set Valor = " & val & " where codigobarra = " & Codigo.Text & ""'
            SQL = "UPDATE produtos set quantidade = " & Valor.Text.Replace(",", ".") & " where codigobarra = " & Codigo.Text & ""
            cmd = New MySqlCommand(SQL, conn)
            cmd.ExecuteNonQuery()
            MsgBox(val)
            cmd = Nothing
        Catch ex As MySqlException
            MsgBox(ex.Message)
        End Try

        conn.Close()
        quant = Nothing
        val = Nothing

Obrigado pela ajuda e desculpa pela demora.

tópico resolvido.

  • 3 weeks later...
Posted
Em Tuesday, October 04, 2016 às 20:00, Felipe Machado disse:

Boa tarde gostaria de saber como inserir valor do tipo double no banco de dados

números inteiros estão indo normalmente mas quando vem a bendita  virgula (",")

http://image.prntscr.com/image/b8fac8b7ef714f58be4568599b92a032.png

o programa gera um erro

Já tentei usar replace(",",".")

Mas ele retorna como numero inteiro


connection()
        Dim val As Double
        val = Valor.Text.Replace(",", ".")

        Try
            SQL = "UPDATE produtos set quantidade = " & val & " where codigobarra = " & Codigo.Text & ""
            cmd = New MySqlCommand(SQL, conn)
            cmd.ExecuteNonQuery()
            MsgBox(val)
            cmd = Nothing
        Catch ex As MySqlException
            MsgBox(ex.Message)
        End Try

        conn.Close()
        quant = Nothing
        val = Nothing

Se alguém puder me ajudar agradeceria muito.

Boas...

Acrescenta cdbl  no textbox ficaria

Cdbl(codigo.text)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.