教训三:
我现在在做什么呢?软件开发完成了,系统却没有正式的数据,那么就需要找实际业务部分,业务部分也有这方面的需求,要将以前在EXCEL中的数据导入系统中.
因此我给了业务部分导入数据库的模板,他们要将数据整理好,按照我模板的规则整理数据,某些字段禁止为空.
花了二天时间,他们整理出了模板数据.因此我也开始了我的导入工作.
导入过程不是顺利.原因在于我和业务部门对数据格式的不统一.
我认为对于"占有率"字段是0-100%,业务部分的实际应用数据高达了14288.98% 好吧.我的承认我软件没达到他们的实际需求.
所有我就要付出一些代价,修改我的数据库的字段将decimal(6, 3) 改为decimal(9, 3).联动还要修改程序中
this.Property(t => t.toolUsageRate_D).HasPrecision(9, 3).HasColumnName("toolUsageRate_D");
重点 继承 : DbContext 的类需要加
modelBuilder.Configurations.Add(new Project_PMana_NewMap());
错误 0xc020901c: 数据流任务: 输入“Destination Input”(264) 上的 输入列“partNetWeight_D”(499) 出错。
返回的列状态是:“由于该数据值溢出了指定的类型,因而转换失败。”。
(SQL Server 导入和导出向导)
错误 0xc020902a: 数据流任务: “输出列“toolingDescription_C”(355)”由于发生截断而失败,
而且针对“输出列“toolingDescription_C”(355)”的截断行处理设置指定截断时出错。
在指定组件的指定对象上出现截断错误。
(SQL Server 导入和导出向导)
解决:varchar(280) 改为 nvarchar(255) 类型即可
解决:数据结构造成的 partNetWeight_D decimal(5, 4) 那么小数为是是4位 前面只剩一位了,碰到9以上的数都得挂彩.
有不少字段是这样的,因此我的导入节奏就显得很不流畅.
这个过程给我带来的教训是,对于应用量不是百万级别的,数据库字段设计大方点吧.
因为我很讨厌修改数据库字段的类型,哪怕它只要求大一点点.因为那东西会产生联动.
数字类型设置偏大
字符型选用nvarchar(255)类型 在导数据中可以规避很多错误