获取错误:不正确的十进制值:第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();
"VALUES ( '" + idPedido + "', '" + totalPedido + "')";
您将字符串插入总计。尝试"VALUES ( '" + idPedido + "', " + totalPedido + ")";
,但我相信您的情况不仅仅如此。您需要进行参数设置,然后才能使用-"VALUES ( @1, @2)";
。问题,您的错误显示为'209,00'
,逗号很重要。您的数据库可能不理解这一点,而是理解点-'209.00'
。它将隐式地将您的字符串转换为十进制,但是问题是逗号。
然后将参数添加到命令中
cmdMPedido.Parameters.Add( . . idPedido . .)
cmdMPedido.Parameters.Add( . . totalPedido . .)