如上图,28列的字段类型是timestamp,在做转换是我直接转换为datetime,但是在对该表进行添加时,调试出现了上图的:将参数值从 DateTime 转换到 Byte[] 失败。球各位大神指教。
DateTime 和Timestamp 不是相同类型。
如果这里是byte[]那你也不能给Datetime类型;
如果是byte[]通常应该是Int 1970的毫秒的表示;
总毫秒数=(dateTime-new DateTime(1970,1,1)).TotalMilliSeconds;
byte[] BitConvert即可(看规定是大端还是小端,然后确定是否反序);
我知道这两个类型不一样,但是我在给字段转换的时候该怎么转换,
@A.I.N.Y: 上述已经给出了Datetime=》Byte[]的方法;TotalMilliSeconds好像是8字节,你需要先强转到int之类的4字节。
要带时区,不然会差8个小时。
那说明你的userModel中28列的字段类型设计错了
我字段设计的时候是timestamp类型,在用生成器生成实体类的时候类型为datetime
@A.I.N.Y: 怕不是,你看下,如果是datetime类型就不会报错了,应该是生成byte[]类型了
@刘宏玺: 我看了的,是datetime,所以我才在后面转换为datetime
@A.I.N.Y: 那你这个是什么时候报的错呢?
@刘宏玺:
就是这一行,是在SqlServerHelper这个类中,这个类是连接数据库以及一些方法
@A.I.N.Y: 那你还是把userModel中28列的字段类型换成 Byte[] 吧
timestamp对应c#的类型就是Byte[] 了
@刘宏玺: 我那个数据字典是从oracle里面拷过来的,估计有点问题,我现在直接把类型改为datetime了