从SQLDataSource修改日期/时间

时间:2013-07-19 07:09:34

标签: c# asp.net .net

我的数据库中有一个日期列,它不是日期时间,因此值没有时间附加。

但是,当我在页面上拖放 SQLDataSource 并将dropdownlist绑定到该页面以显示日期时,它会自动添加12:00:00 AM的时间。< / p>

我知道为什么会这样做,但我不知道如何摆脱它。我需要从代码隐藏绑定它吗?

对此有一个简单的解决方法吗?

4 个答案:

答案 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。