说到数据类型,不得不先说数据这档子事儿……
数据,是可以被计算机处理的信息,是程序代码的重要组成部分,而我们的数据首先是通过计算机的文件系统存储在存储介质上,操作系统通过启动外围设备来读取磁盘或者磁带中的数据,当然我们的计算机要处理这些数据必须得先通过将这些数据调到内存中来,通过内存再调入CPU最终进行计算和处理。
众所周知,内存资源对于计算机而言是非常宝贵的,为了提高咱们对数据的运算处理能力,并且提高内存的使用效率,咱对数据进行了分类。每种类型的数据都占用一定数量的存储空间,表示的值也是有一定的范围的,而且,我们在编写代码的时候,也要仔细考虑到这种情况,每种类型的数据进行处理时的具体算法实现不一样,我们应该从最大限度提高程序执行速度和效率,节省内存的角度来设定数据类型。
以上都是官方说法,其实,我更喜欢用这样的一个例子来说明一下。就像,咱们日常生活中。咱们把眼镜放到眼镜盒中,把文具放到文具盒中,多大的东西放到多大的地方。就像古话说的,杀鸡焉用宰牛刀?事情就是那么的简单啊。……But,
在LRS项目中,因为采用了三层架构,用到了实体(将数据库中的表映射而成),而且咱们用到了泛型集合(为了将数据库中的DataTable转换成泛型实体集合),这个转换过程中一直报各种数据类型不能转换的错误!
1、datetime无法转换成TimeSpan
2、Date无法转换成string……
3……
问了一些童鞋,他们采取了很聪明的办法,将数据库中所有的数据类型改换成了Char类型……顺利的解决了这个问题。但是……,这样确实违背了高质量编程的原则,我们必须采用合适的数据类型。
这个问题,困扰了许久,最终在我的不将就精神的探索下,解决了这个数据类型冲突的问题。
在实体中将数据类型(也就是.netframework类型系统)同数据库中的字段的类型,按照下图中的对照表对号入座就好了,下面奉上SqlServer映射数据类型的对照表。希望对大家有帮助吧……