我在我的数据库中有一个日期列,它不是日期时间,所以这些值没有附加时间。从SQLDataSource修改日期/时间
然而,当我拖我的网页上放置一个的SqlDataSource和绑定dropdownlist
它显示的日期,它会自动添加的12:00:00 AM
的时间。
我知道它为什么这样做,但我不知道如何摆脱它。我是否需要将其与代码隐藏绑定?
有没有简单的解决办法呢?
我在我的数据库中有一个日期列,它不是日期时间,所以这些值没有附加时间。从SQLDataSource修改日期/时间
然而,当我拖我的网页上放置一个的SqlDataSource和绑定dropdownlist
它显示的日期,它会自动添加的12:00:00 AM
的时间。
我知道它为什么这样做,但我不知道如何摆脱它。我是否需要将其与代码隐藏绑定?
有没有简单的解决办法呢?
集DropDownList.DataTextFormatString它可能是有用的。
<asp:DropDownList
id="datesList"
runat="server"
dataTextFormatString="{0:dd/MM/yyyy}"/>
然后数据绑定控件将应用正确的格式后:
将格式添加到字段或列定义。例如Gridview:
<asp:boundfield datafield="Your_Date_Column" dataformatstring="{0:MMMM d, yyyy}" htmlencode="false" />
顺便说一句,其他方法是使用ViewModel - 类,它只需要显示数据。在这个类中,不需要使用DateTime或其他数据类型:只有字符串。例如,您可以在此处定义一些显示默认值:如果值为null,则显示文本“UNDEFINED”或您需要的内容。在某些情况下,这种方法可以使您准备显示数据。
你能告诉你的SQL查询。有你使用(VARCHAR,日期,103)方法转换为查询
数据库中没有时间,所以我没有在我的sql语句中使用convert,这是一个.net运行时问题。 – prospector
你用dataTextFormatString尝试了你的DDL吗 – Bhagavan
C#没有日期数据类型,虽然从SQL值(日期)数据类型是转换为时间字段在C#。因此,尽可能使用convert(varchar,date,103)将sql日期转换为sql中的nvarchar,尽管C#将它视为字符串。
我认为你仍然可以在生成的代码中对其进行格式化 – Sandy