我有一个应用程序,用户需要在该应用程序中填写他们针对客户完成的工作量的时间表。我目前使用的Timespan在某一点上运行良好。
我目前遇到的问题是,如果用户每天必须对客户投放4小时或更长时间,那么它就会失败。我得到的当前消息是SqlDbType.Time overflow. Value '1.04:00:00' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999.
这只适用于我总计的所有日子。
我拥有的是这个
型号:
public TimeSpan Total
{
get
{
TimeSpan result = new TimeSpan(Monday.Ticks
+ Tuesday.Ticks
+ Wednesday.Ticks
+ Thursday.Ticks
+ Friday.Ticks
+ Saturday.Ticks
+ Sunday.Ticks);
return (result);
}
set
{
TimeSpan result = new TimeSpan(Monday.Ticks
+ Tuesday.Ticks
+ Wednesday.Ticks
+ Thursday.Ticks
+ Friday.Ticks
+ Saturday.Ticks
+ Sunday.Ticks);
}
}
我已尝试将.ticks
移至部分有效的.Hours
,但却给了我过多的0s
http://prntscr.com/anaigx
请有人可以提供建议。
答案 0 :(得分:3)
您遇到的问题是由于您对SqlDbType.Time的定义。
此类型只能用于“正常”时间,如15:36,或者其他任何情况,它不能存储小时数。
如果你想存储小时数,你应该使用float类型来存储小时数,或者使用int(或bigint)来存储小时数。