我的应用程序,它与MySQL数据库操纵工作,但在这个表中插入值时,我有错误:C#Mysql的插入查询“数据被截断列费用”
private const string createItemTableQuery = "CREATE TABLE IF NOT EXISTS `virtualstartupdb`.`item` (" +
"`id` BIGINT(20) NOT NULL AUTO_INCREMENT," +
"`name` VARCHAR(1000) NOT NULL," +
"`title` VARCHAR(1000) NOT NULL," +
"`description` VARCHAR(1000) NOT NULL," +
"`language_id` VARCHAR(45) NOT NULL," +
"`price` DOUBLE(12,2) NOT NULL," +
"`costs` DOUBLE(12,2) NOT NULL," +
"`item_type_id` BIGINT(20) NOT NULL," +
"PRIMARY KEY(`id`)," +
"FOREIGN KEY(item_type_id) REFERENCES `virtualstartupdb`.`item_type` (id) ON DELETE NO ACTION ON UPDATE NO ACTION); ";
我也有类于插入查询该表:
这些属性:
long _id;
double _costs;
string _name;
string _title;
string _description;
string _language_id;
double _price;
long _item_type_id;
这是插入查询我使用:
private string insertQuery = "INSERT INTO `virtualstartupdb`.`item` (`name`, `title`, `description`, `language_id`, `price`, `item_type_id`, `costs`) VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}');";
这是当我插入值像2650,551,0,属性成本和价格都可以,但是当我尝试插入41.67或193.33我得到控制台此错误:
Error in adding mysql row. Error: Data truncated for column 'costs' at row 1
我也尝试与浮动,同样的错误。我做错了什么?
的'193.33'值,不应产生这个错误。 – Rahul
41.67和193.33听起来像是实际上可能插入了无限小数(如41.6666666666667或193.333333333)。你确定你的值真的只有2位小数?而且,考虑使用DECIMAL字段,而不是放松精度。 – jishi
我不认为这是事实。我甚至在插入之前尝试了Math.round(成本,2),仍然是相同的错误。 – Teemo