none
Additional information: Incorrect decimal value: '209,00' for column 'total' at row 1 RRS feed

  • Pergunta

  • Olá,

    Eu tenho um projeto que salva dados local no mysql e uso phpMyadmin do xampp, depois resolvi passar para um servidor mysql online,  exportei o backup do mysql do xampp e importei para o mysql do servidor online ate ai tudo bem quando salvo arquivos do string, int salva normal como  era do xampp mas quando tenho tabela que possui valor decimal aparece o seguinte erro:

    Additional information: Incorrect decimal value: '209,00' for column 'total' at row 1

    Código: 

    SqlConnection con = new SqlConnection(Settings.Default.stringConexao2); //Banco SqlServer

    SqlDataAdapter adp = new SqlDataAdapter("select * from pedio where id_pedido >" + id_nome + "", con);               

    DataTable tablePedido = new DataTable();

    con.Open();               

    adp.Fill(tablePedido);

    con.Close();

    idPedido = Convert.ToInt32(tablePedido.Rows[i]["id_pedido"]);

    totalPedido = Convert.ToDecimal(tablePedido.Rows[i]["total"]);

    string query =  "INSERT INTO `pedido` (`idPedido`,`total` ) "; 

    query += "VALUES ( " + idPedido + ", " + totalPedido + ")";

    MySqlConnection conMysql = new MySqlConnection(Settings.Default.stringMySql); //String Mysql

    MySqlCommand cmdMPedido = new MySqlCommand(query, conMysql );

    cmdMPedido.CommandTimeout = 60;

    conMysql.Open();                   

    cmdMPedido.ExecuteReader(); //local do erro

    conMysql.Close();

    Alguém conhece esse fenômeno?



    • Editado beto soares domingo, 23 de fevereiro de 2020 13:58
    domingo, 23 de fevereiro de 2020 00:36

Respostas

  • Descobri o problema é por causa das aspas simples e tb usando:

    cmdPedido.Parameters.AddWithValue

    resolvi outros problemas obrigado pela resposta. 

    • Marcado como Resposta beto soares sexta-feira, 28 de fevereiro de 2020 15:30
    quarta-feira, 26 de fevereiro de 2020 02:01

Todas as Respostas

  • Bom dia,

    Não tenho experiência com o MySQL mas desconfio que esse erro está ocorrendo por causa do caractere separador das casas decimais.

    Acredito que nesse caso seja melhor utilizar parâmetros na instrução SQL pois dessa forma esse detalhe se torna transparente. Ex:

    string query =  "INSERT INTO pedido (idPedido, total) "; 
    query += "VALUES ( @idPedido, @totalPedido )";
    MySqlConnection conMysql = new MySqlConnection(Settings.Default.stringMySql); //String Mysql
    MySqlCommand cmdMPedido = new MySqlCommand(query, conMysql );
    cmdPedido.Parameters.AddWithValue("@idPedido", idPedido);
    cmdPedido.Parameters.AddWithValue("@totalPedido", totalPedido);
    cmdMPedido.CommandTimeout = 60;
    conMysql.Open();                    
    cmdMPedido.ExecuteNonQuery();

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta beto soares sexta-feira, 28 de fevereiro de 2020 15:30
    • Não Marcado como Resposta beto soares sexta-feira, 28 de fevereiro de 2020 15:30
    segunda-feira, 24 de fevereiro de 2020 13:11
  • Descobri o problema é por causa das aspas simples e tb usando:

    cmdPedido.Parameters.AddWithValue

    resolvi outros problemas obrigado pela resposta. 

    • Marcado como Resposta beto soares sexta-feira, 28 de fevereiro de 2020 15:30
    quarta-feira, 26 de fevereiro de 2020 02:01