0

このエラーがどのように発生するのかわかりません。最初に保存する日付または時刻の情報が含まれていない情報を保存すると、ページに表示されるためです。私はこれの原因である可能性はありません。このページには、選択ドロップダウン ボックスが日付や時刻とともに表示されないだけです。この問題に関する洞察は大歓迎です。

これは全体的なエラー メッセージです。

System.Data.SqlClient.SqlException (0x80131904): 式をデータ型 datetime に変換する算術オーバーフロー エラー。ステートメントは終了されました。C の Kids.Domain.Entities.KidsDataContext.HandleSqlException(SqlException sqlException):\code\kids\Kids.Domain\Entities\KidsDataContextPartial.cs:C の Kids.Domain.Entities.KidsDataContext.SubmitChanges(ConflictMode failureMode) の 86 行目:\code\kids\Kids.Domain\Entities\KidsDataContextPartial.cs:C:\code\kids\Kids.Domain\Repository\Concrete\ の Kids.Domain.Repository.Concrete.CasePartyRepository.Save(CaseParty caseParty) の 78 行目CasePartyRepository.cs:C:\code\kids\Kids.MVC\Controllers\PartyRelationshipController.cs の Kids.MVC.Controllers.PartyRelationshipController.SelectPartyType(PartyTypeRelationshipFormViewModel viewModel, Guid[] selectedParties) の 67 行目:DisplayClass44.b _43() System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c_ DisplayClass39 .<>c _DisplayClass3b.b_ 35() System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c _DisplayClass51.b_ 4b( ) System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c _DisplayClass51.b_ 4b() System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c _DisplayClass51.b_ 4b() でAsyncControllerActionInvoker。_ _ _ _AsyncControllerActionInvoker.<>c_DisplayClass27.b _24(IAsyncResult asyncResult)

KidsDataContextPartial コード:

 private void HandleSqlException(SqlException sqlException)
    {
        if (sqlException.Message.StartsWith("The DELETE statement conflicted"))
        {
            throw new DeleteReferencedException("Can not delete referenced items", sqlException);
        }
        if (sqlException.Number == 2601 || sqlException.Number == 2627 )
        {
            throw new DuplicateItemException("Item already exists.", sqlException);
        }
        throw sqlException;
    }

86行目:

throw new DeleteReferencedException("Can not delete referenced items", sqlException);
4

2 に答える 2

0

ページに文化を追加してみてください。

<%@ Page Language="VB" Title="..." Culture="en-US" %>

文化が異なれば結果も異なる可能性があります...サーバーの文化はあなたの文化とは異なるかもしれません

于 2013-01-23T02:33:55.333 に答える
0

テーブル スキーマに何らかの種類の日時フィールドがある場合 (おそらくタイムスタンプとして)、EF は既定では SQL の既定値 (などgetdate()) を尊重するほどスマートではないため、エンティティを追加するときに自分で設定する必要があります。それ以外の場合、EF は値を の既定値DateTime(のようです) に設定しようとしますが、その結果、 MSSQL 型01/01/0001に対して無効な日付になります(ただし、フィールドを に変更すると機能するはずです)。datetimedatetime2

于 2013-01-23T02:40:28.383 に答える