我最近复制一个web应用到新安装的Windows 7和SQL Server 2008 R2。该应用程序使用LINQ to SQL。某处沿线的解析POST日期字符串被搞砸了。当用户输入日期字符串,如4/23/2011
时,应用程序拒绝它,并引发错误The value '04/23/2011' is not valid for Due.
Due(实际上是DueDate)是SQL Server中的DateTime字段。配置的日期格式与Windows 7/.NET/SQL服务器
过去,这很好地工作。我以为这是与机器的操作系统国际化设置的问题,所以我检查和短期和长期的日期格式分别设置为MM/dd/yyyy
和dddd, MMMM dd,yyyy
,这看起来不错我。 SQL Server数据库语言设置为英语。
此属性的分部类看起来是这样的:
[DisplayName("Due")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime? DueDate { get; set; }
必须有另一种日期格式设置我需要调整。我应该在哪里看?
注:这可能是更正确的一个serverfault问题,但我认为开发者更容易碰到这个问题不是系统管理员。
更多信息:SP_CONFIGURE 'default language'
回报:
default language 0 9999 0 0
另外:因为我使用的数据库登录的默认语言为英语。
这是否会被拒绝?通过SQL Server或之前' – gbn 2011-04-25 18:39:12
看起来像以前(由LINQ To SQL我假设)。我可以使用'4/23/2011'直接在原始SQL中进行查询或更新,并且工作正常。 – RedFilter 2011-04-25 18:46:05