2011-01-31 9 views
0

私はLinqからsqlを使い始めました。私はレコードを挿入しようとしています。ここに私のコードです。LInq to Sql DateTimeの問題が挿入されました

SQLDATETIMEオーバーフロー:

FMCSA_USER_LOG _MyUserLog = new FMCSA_USER_LOG(); 

_MyUserLog.USER_ID = model.UserID; 

_MyUserLog.ACTIVITY_TYPE_ID = model.ActivityTypeID; 
_MyUserLog.ACTIVITY_TARGET = model.ActivityTarget; 
_MyUserLog.DESCRIPTION = model.Description; 
_MyUserLog.ACTIVITY_TIME = DateTime.Today; 
_MyUserLog.ACTIVITY_TYPE_ID = null; 
_MyUserLog.DESCRIPTION = null; 
db.FMCSA_USER_LOGs.InsertOnSubmit(_MyUserLog); 

db.SubmitChanges(); 

は私がでSubmitChangesにこの例外を受け取りました。 1/1753 12:00:00 AMと12/31/9999 11:59:59 PMの間にある必要があります。

この問題を読んだところ、日付フィールドがあり、値が小さすぎると発生します。しかし、今日の日付に設定したテーブルの唯一の日付フィールド。

ここにレコードがあります。私は何が間違っているのか分かりません。

CREATE TABLE [dbo].[FMCSA_USER_LOG](
[ID] [int] IDENTITY(1,1) NOT NULL, 
[USER_ID] [int] NULL, 
[ACTIVITY_TIME] [datetime2](7) NOT NULL, 
[ACTIVITY_TYPE_ID] [int] NULL, 
[ACTIVITY_TARGET] [varchar](50) NULL, 
[DESCRIPTION] [varchar](8000) NULL, 
CONSTRAINT [PK_FMCSA_USER_LOG] PRIMARY KEY CLUSTERED 
([ID] ASC) 
) 
+1

あなたはあなたのデータベースモデルを変更しましたし、それらの変更を反映するために、あなたのLINQのツーSQLモデルを更新していません? Linq-to-SQLモデルは自動的には更新されません。データベース構造のスナップショットです。後でデータベースで変更する場合は、モデルを明示的に更新する必要があります。 –

+1

別の 'datetime'カラムがどこかにあるかもしれません(おそらくトリガ)?指定されたスクリプトの列は 'datetime2'であり、.NETの' System.DateTime' IMOの範囲と実際に一致していなければなりません.Netから設定した値がデータベースに対して高すぎたり小さすぎたりしてはいけません。 – hangy

+0

dbmlファイルの "Server Data Type"と "Type"にあるACTIVITY_TIMEフィールドは何ですか? – curtisk

答えて

0

datetime2の列に.net datetimeを振り分けるのに時間がかかりました。 私はそれがこの方法で作業しました:

FMCSA_USER_LOG _MyUserLog = new FMCSA_USER_LOG(); 

var MyAwesomeDateTime = DateTime.Today.ToString("yyyy-MM-dd HH:mm:ss:fff"); 
var MyAwesomeDateTime2 = DateTime.ParseExact(MyAwesomeDateTime , "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture); 

_MyUserLog.USER_ID = model.UserID; 

_MyUserLog.ACTIVITY_TYPE_ID = model.ActivityTypeID; 
_MyUserLog.ACTIVITY_TARGET = model.ActivityTarget; 
_MyUserLog.DESCRIPTION = model.Description; 
_MyUserLog.ACTIVITY_TIME = MyAwesomeDateTime2; 
_MyUserLog.ACTIVITY_TYPE_ID = null; 
_MyUserLog.DESCRIPTION = null; 
db.FMCSA_USER_LOGs.InsertOnSubmit(_MyUserLog); 

db.SubmitChanges(); 
関連する問題