【发布时间】:2012-07-02 12:52:24
【问题描述】:
我有一个包含 ValidFrom 表单值的文本框:
31.01.2012
文化设置为:
<globalization culture="en-GB" uiCulture="en-GB"/>
在 web.config 中。
现在,ObjectDataSource 更新方法:
public static void UpdateLac(int id, DateTime ValidFrom)
{
/// ...
}
失败,因为我收到无法解析字符串的异常。然而,格式为 dd.mm.yyyy (31.01.2012) 的日期是有效的 en-GB 格式并且可以被解析(据我所知)。我已经用以下代码对其进行了测试:
DateTimeFormatInfo dtfi = CultureInfo.CreateSpecificCulture("en-GB").DateTimeFormat;
var date = DateTime.Parse("31.01.2012", dtfi);
Console.Write(date.ToLongDateString());
那么在这个例子中,为什么 ObjectDataSource 内部转换无法将 string (31.01.2012) 转换为 DateTime 呢?
【问题讨论】:
-
试试 01.31.2012 看看它是否工作
-
01.31.2012 被 ObjectDataSource 转换为 DateTime,但是当我在回发中调用(只是为了测试)DateTime.Parse("01.31.2012") (因为我的文化是设置为 en-GB)
-
对象类型可以与 ODS 一起使用吗?如果是自定义类型,能否提供其属性和字段的源代码?
-
设置格式为 dd.MM.yyyy 希望它的作品
-
@Jeff : ObjectDataSource 不适用于自定义类型。它调用 UpdateMethod 并传递 .NET 内置类型(字符串、int、DateTime 等)
标签: c# asp.net .net objectdatasource datetime-format