2013-07-19 45 views
1

我在我的数据库中有一个日期列,它不是日期时间,所以这些值没有附加时间。从SQLDataSource修改日期/时间

然而,当我拖我的网页上放置一个的SqlDataSource和绑定dropdownlist它显示的日期,它会自动添加的12:00:00 AM的时间。

我知道它为什么这样做,但我不知道如何摆脱它。我是否需要将其与代码隐藏绑定?

有没有简单的解决办法呢?

+0

我认为你仍然可以在生成的代码中对其进行格式化 – Sandy

回答

2

集DropDownList.DataTextFormatString它可能是有用的。

<asp:DropDownList 
id="datesList" 
runat="server" 
dataTextFormatString="{0:dd/MM/yyyy}"/> 

然后数据绑定控件将应用正确的格式后:

1

将格式添加到字段或列定义。例如Gridview:

<asp:boundfield datafield="Your_Date_Column" dataformatstring="{0:MMMM d, yyyy}" htmlencode="false" /> 

顺便说一句,其他方法是使用ViewModel - 类,它只需要显示数据。在这个类中,不需要使用DateTime或其他数据类型:只有字符串。例如,您可以在此处定义一些显示默认值:如果值为null,则显示文本“UNDEFINED”或您需要的内容。在某些情况下,这种方法可以使您准备显示数据。

1

你能告诉你的SQL查询。有你使用(VARCHAR,日期,103)方法转换为查询

+0

数据库中没有时间,所以我没有在我的sql语句中使用convert,这是一个.net运行时问题。 – prospector

+0

你用dataTextFormatString尝试了你的DDL吗 – Bhagavan

0

C#没有日期数据类型,虽然从SQL值(日期)数据类型是转换为时间字段在C#。因此,尽可能使用convert(varchar,date,103)将sql日期转换为sql中的nvarchar,尽管C#将它视为字符串。