2013-01-23 28 views
0

我不確定此錯誤是如何發生的 - 因爲當我保存不包含任何日期或時間信息的信息時,它會出現在頁面中保存開始。我不是這可能是什麼原因。該頁面只顯示沒有日期或時間的選擇下拉框。任何有關這個問題的見解將不勝感激。在沒有日期的頁面上將表達式轉換爲數據類型datetime的算術溢出錯誤

這是整體錯誤消息:

System.Data.SqlClient.SqlException(0x80131904):算術溢出錯誤將表達式轉換爲數據類型日期時間。 該聲明已被終止。 C:\ code \ kids \ Kids.Domain \ Entities \ KidsDataContextPartial.cs中的Kids.Domain.Entities.KidsDataContext.HandleSqlException(SqlException sqlException)中的 :第86行 at Kids.Domain.Entities.KidsDataContext.SubmitChanges(ConflictMode failureMode)在C:\ code \ kids \ Kids.Domain \ Repository中的Kids.Domain.Repository.Concrete.CasePartyRepository.Save(CaseParty caseParty)的C:\ code \ kids \ Kids.Domain \ Entities \ KidsDataContextPartial.cs中:第78行 \ Concrete \ CasePartyRepository.cs:line 67 at C:\ code \ kids \ Kids.MVC \ Controllers \ PartyRelationshipController.cs中:Kids.MVC.Controllers.PartyRelationshipController.SelectPartyType(PartyTypeRelationshipFormViewModel viewModel,Guid [] selectedParties):line 116 在lambda_method(Closure,ControllerBase,Object []) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerCo ntext controllerContext,IDictionary`2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker。 <> c_ DisplayClass44.b _43() at System.Web.Mvc.Async.AsyncControllerActionInvoker。 <> c_ DisplayClass39。 <> c _DisplayClass3b.b_ 35() at System.Web.Mvc.Async.AsyncControllerActionInvoker。 <> c _DisplayClass51.b_ 4b() at System.Web.Mvc.Async.AsyncControllerActionInvoker。 <> c _DisplayClass51.b_ 4b() at System.Web.Mvc.Async.AsyncControllerActionInvoker。 <> c _DisplayClass51.b_ 4b() at System.Web.Mvc.Async.AsyncControllerActionInvoker。 <> c _DisplayClass39.b_ 38(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker。 <> c _DisplayClass27。 <> c_ DisplayClass2c.b _22() at System.Web.Mvc.Async.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

如果您可以發佈該代碼,我們可以幫助您進行調試。 –

+0

@JW我不知道要發佈什麼 - 當我在localhost上運行代碼時,它沒有這個錯誤 - 只有當它被部署到令我困惑的服務器時纔出現此錯誤。我可以發佈堆棧。 – Masriyah

+0

我們可以看到'KidsDataContextPartial'的第86行嗎? –

回答

0

嘗試將文化添加到您的網頁:

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

不同的文化可以做不同的結果... 也許服務器的文化是從文化

0

不同。如果你有什麼樣的日期時間字段的在你的表模式(可能是時間戳),EF默認情況下不足夠的智慧,尊重SQL默認值(如getdate())所以你需要在添加實體時自己設置。否則,EF會嘗試將該值設置爲默認值DateTime(似乎爲01/01/0001),這會導致對於datetime MSSQL類型無效的日期(儘管將字段更改爲datetime2應該可行)。

相關問題