asp.net DetailView日期时间字段格式与SQL Server格式不匹配

时间:2013-09-13 12:04:34

标签: c# asp.net detailsview

我有一个asp.net(WebForms)应用程序,它有一个详细信息视图(插入模式)来添加新数据。

其中2个字段为datetime类型。我已将SQL Server数据库列定义为datetime

现在每当我尝试添加日期和时间时,它都表示它与格式不匹配!

我看到有人遇到同样的问题但不幸的是他们的解决方案对我不起作用。我怎样才能确保格式匹配?是否可以将当前日期时间显示为样本,以便用户遵循它?

提前致谢!

详情查看代码:

<Fields>
          <asp:BoundField DataField="projectName" HeaderText="projectName" SortExpression="projectName" />
          <asp:BoundField DataField="projectType" HeaderText="projectType" SortExpression="projectType" />
          <asp:BoundField DataField="subjectName" HeaderText="subjectName" SortExpression="subjectName" />
          <asp:BoundField DataField="studentID" HeaderText="studentID" SortExpression="studentID" />
          <asp:BoundField DataField="supervisorID" HeaderText="supervisorID" SortExpression="supervisorID" />
          <asp:BoundField DataField="startDate" HeaderText="startDate" SortExpression="startDate" />
          <asp:BoundField DataField="dueDate" HeaderText="dueDate" SortExpression="dueDate" />
          <asp:CommandField ShowInsertButton="True" />
</Fields>

2 个答案:

答案 0 :(得分:2)

最好使用标准的中性格式,而不管任何区域,语言..设置。

对datetime使用以下格式。如果您以未分离或ISO 8601格式输入日期时间,则不必担心任何配置/设置:

Unseparated = 'yyyymmdd hh:mm:ss'
ISO 8601    = 'yyyy-mm-ddThh:mm:ss'

ISO 8601格式具有在国际标准中定义的优势 。 在处理日期时间值时,您可以使用ToString()方法传递此格式:

lblDateTime.Text = (DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss"));

这有各种优点,因为它不需要检查/更改操作系统,数据库服务器的设置......继续reading here

答案 1 :(得分:1)

如果您动态输入日期时间,请检查您的PC日期格式并在截止日期输入相同格式的日期,然后像这样使用

DateTime.Now.ToString(yyyy-MM-dd)

这里yyyy-MM-dd是我的日期格式,在此输入您的格式,这是当前日期,您可以将它用于您想要的日期