我正在使用 C# 将网上商店系统转换为另一个系统。这是从 DB 到 DB 之间的一些转换。
我在 C# 中有这段代码:
Double proPriceTmp = Double.Parse(productPrice);
Double realPrice = ((proPriceTmp / 121) * 100);
string insertProduct = "INSERT INTO `" + ocPrefix + "product` ( `product_id`, `model`, `quantity`, `stock_status_id`, `image`, `manufacturer_id`, `shipping`, `price`, `tax_class_id`,`date_available`, `weight`, `weight_class_id`, `length`, `width`, `height`,`length_class_id`,`subtract`,`minimum`,`sort_order`,`status`,`date_added`,`date_modified`,`viewed`) VALUES ('" + product_id + "', @param_model, '" + product_quantity + "', '" + stock_status_id + "', '" + image + "', '" + manufacturer_id + "', '" + shipping + "', '" + realPrice + "', '" + numericUpDown1.Value + "', '" + date_available + "', '" + product_weight + "', '" + weigth_class_id + "', '" + product_length + "', '" + product_width + "', '" + product_height + "', '" + length_class_id + "', '" + substracting + "', '" + minimum + "', '" + sort_order + "', '" + status + "', '" + product_created + "', '" + product_modified + "', '" + viewed + "')";
MySqlCommand cmdInsertProduct = new MySqlCommand(insertProduct, connOc);
cmdInsertProduct.CommandText = insertProduct;
cmdInsertProduct.Parameters.AddWithValue("@param_model", product_name);
cmdInsertProduct.ExecuteNonQuery();
cmdInsertProduct.Dispose();
这是价格变量的值(感谢调试器):
productPrice = "1,20000";
proPriceTmp = 1.2;
realPrice = 0.99173553719008256;
但是数据库中的价格是0.0000
。我已经尝试过手动插入信息,并且有效(使用那个长数字),所以应该可以。
该表如下所示:
CREATE TABLE `oc_product` (
`product_id` int(11) NOT NULL AUTO_INCREMENT,
`model` varchar(64) NOT NULL,
`sku` varchar(64) NOT NULL,
`upc` varchar(12) NOT NULL,
`ean` varchar(14) NOT NULL,
`jan` varchar(13) NOT NULL,
`isbn` varchar(13) NOT NULL,
`mpn` varchar(64) NOT NULL,
`location` varchar(128) NOT NULL,
`quantity` int(4) NOT NULL DEFAULT '0',
`stock_status_id` int(11) NOT NULL,
`image` varchar(255) DEFAULT NULL,
`manufacturer_id` int(11) NOT NULL,
`shipping` tinyint(1) NOT NULL DEFAULT '1',
`price` decimal(15,4) NOT NULL DEFAULT '0.0000',
`points` int(8) NOT NULL DEFAULT '0',
`tax_class_id` int(11) NOT NULL,
`date_available` date NOT NULL,
`weight` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`weight_class_id` int(11) NOT NULL DEFAULT '0',
`length` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`width` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`height` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`length_class_id` int(11) NOT NULL DEFAULT '0',
`subtract` tinyint(1) NOT NULL DEFAULT '1',
`minimum` int(11) NOT NULL DEFAULT '1',
`sort_order` int(11) NOT NULL DEFAULT '0',
`status` tinyint(1) NOT NULL DEFAULT '0',
`date_added` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`date_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`viewed` int(5) NOT NULL DEFAULT '0',
PRIMARY KEY (`product_id`)
) ENGINE=MyISAM AUTO_INCREMENT=52 DEFAULT CHARSET=utf8;
那么有人知道为什么这不像它应该做的那样工作吗?即使朝着正确的方向稍微推动一下就足够了……
编辑
如上所述,这是 的值insertProduct
。如您所见,那里的价格合适吗...
"INSERT INTO `oc_product` ( `product_id`, `model`, `quantity`, `stock_status_id`, `image`, `manufacturer_id`, `shipping`, `price`, `tax_class_id`,`date_available`, `weight`, `weight_class_id`, `length`, `width`, `height`,`length_class_id`,`subtract`,`minimum`,`sort_order`,`status`,`date_added`,`date_modified`,`viewed`) VALUES ('51', @param_model, '999999999', '7', 'data/old/letter_trein.jpg', '0', '1', '0,991735537190083', '11', '2013-06-09', '600,000', '1', '0,000', '0,000', '0,000', '1', '0', '0', '0', '1', '2013-01-09 12:26:02', '2013-10-24 10:23:47', '0')"