【问题标题】:why am I getting 00:00:00 at the end of the date in the datatable? asp.net为什么我在数据表中的日期结束时得到 00:00:00?网
【发布时间】:2012-09-04 06:23:05
【问题描述】:

您好,我正在从下面的函数执行存储过程。在所有日期,我在数据表中的最后时间是 19:12:2012 00:00:00。该列在数据库中定义为 Date 并在 SP 中返回为 Date。为什么我在日期结束时得到 00:00:00?

谢谢。

示例代码。

    Dim dt As New DataTable
    Dim da As New SqlDataAdapter
    Dim con As New SqlConnection(_conString)
    Dim SelectCommand As New SqlCommand()

        With SelectCommand                

            .Parameters.Add(New SqlParameter(_strAcademicYear, SqlDbType.Int))
            .Parameters(_strAcademicYear).Value = _AcademicYear

            .CommandText = "[Teacher].[GetDate]"
            .CommandType = CommandType.StoredProcedure
            .Connection = con
        End With

        da.SelectCommand = SelectCommand
        con.Open()
        da.Fill(dt)
        con.Close()

【问题讨论】:

  • 谢谢,我正在将数据表绑定到网格视图。有没有办法在 gridview 上只显示日期?

标签: asp.net vb.net date datetime


【解决方案1】:

因为在您的数据表中,它是 DateTime。只有日期没有 CLR 类型。未指定时间的日期的默认时间是午夜 - 00:00:00。

你可以为你的 gridview 使用列数据格式,我假设 - 已经很久没有使用过 - 正确输出你想要显示的数据。

类似

<asp:boundfield datafield="date"
    dataformatstring="{0:YYYY-MM-DD}"
    htmlencode="false" />

当然,将格式字符串替换为您想要的任何内容。 =)

(根据chridam的评论更新标签)

【讨论】:

  • 只要确保将boundfield的HtmlEncode属性设置为False
  • 嗨,chridam,为什么我需要设置它?你能解释一下吗?
  • @Laurence forums.asp.net/t/1001482.aspx/1 HtmlEncode 属性指定字段值在显示在 BoundField 对象中之前是否被 HTML 编码为它们各自的字符串表示形式。例如,如果此属性为真,则字符串值“
猜你喜欢
  • 1970-01-01
  • 2020-08-06
  • 2013-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-19
  • 2015-11-28
相关资源
最近更新 更多