其他信息:不正确的十进制值:第1行的“总计”列的“ 209,00”

问题描述 投票:0回答:1

获取错误:不正确的十进制值:第1行的“总计”列的“ 209,00”

代码:

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();
c# mysql
1个回答
0
投票

"VALUES ( '" + idPedido + "', '" + totalPedido + "')";您将字符串插入总计。尝试"VALUES ( '" + idPedido + "', " + totalPedido + ")";,但我相信您的情况不仅仅如此。您需要进行参数设置,然后才能使用-"VALUES ( @1, @2)";。问题,您的错误显示为'209,00',逗号很重要。您的数据库可能不理解这一点,而是理解点-'209.00'。它将隐式地将您的字符串转换为十进制,但是问题是逗号。

然后将参数添加到命令中

cmdMPedido.Parameters.Add( . . idPedido  . .) 
cmdMPedido.Parameters.Add( . . totalPedido  . .) 
© www.soinside.com 2019 - 2024. All rights reserved.