我的数据库中有一个日期列,它不是日期时间,因此值没有时间附加。
但是,当我在页面上拖放 SQLDataSource 并将dropdownlist
绑定到该页面以显示日期时,它会自动添加12:00:00 AM
的时间。< / p>
我知道为什么会这样做,但我不知道如何摆脱它。我需要从代码隐藏绑定它吗?
对此有一个简单的解决方法吗?
答案 0 :(得分:2)
设置DropDownList.DataTextFormatString。
<asp:DropDownList
id="datesList"
runat="server"
dataTextFormatString="{0:dd/MM/yyyy}"/>
然后在DataBinding之后,您的控件将应用正确的格式:
答案 1 :(得分:1)
向字段或列定义添加格式。例如Gridview:
<asp:boundfield datafield="Your_Date_Column" dataformatstring="{0:MMMM d, yyyy}" htmlencode="false" />
BTW,其他方法是使用ViewModel - 仅用于显示数据的类。在这个类中,不需要使用DateTime或其他数据类型:只有字符串。例如,您可以在此处定义一些显示默认值:如果值为null,则显示文本&#34; UNDEFINED&#34;或者你需要什么。在某些情况下,这种方法可以为您准备显示数据提供集中点。
答案 2 :(得分:1)
你能展示你的sql查询吗?它可能对你的查询使用convert(varchar,date,103)方法
答案 3 :(得分:0)
C#没有date数据类型,虽然sql(date)数据类型的值转换为c#中的datetime字段。因此,尽管C#将其视为字符串,但使用convert(varchar,date,103)更好地将日期转换为sql中的nvarchar。