2016-04-02 18 views
2

私はユーザーがクライアントに対して完了した作業量のタイムシートを記入する必要があるアプリケーションを持っています。私は現在、ある時点までうまく動作するTimespanを使用しています。Asp.Net MVC timespan

私が現在抱いている問題は、ユーザーが顧客に対して1日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部分的に動作しますが、私に誰かが助言することができます0shttp://prntscr.com/anaigx

の過剰量を与える.Hoursへ:

は私が持っていることは、この

モデルです。

答えて

3

問題は、SqlDbType.Timeの定義によるものです。

このタイプは、15:36などの「通常の」時間にのみ使用できますが、何時間でも保存することはできません。

時間を格納する場合は、時間を格納するにはfloat型を使用し、ダニを格納するにはint(またはbigint)を使用する必要があります。

+1

ありがとう@Ziv Weissman。最終的に、次の 'public TimeSpan Total'を' public double Total'に変更してから、ダックを 'double weekTotal = result.TotalMinutes; return(weekTotal); ' – markabarmi