2012-06-21 114 views

回答

1

你的问题表明你正在使用一个GridView和一个DataSource。

我假设你的源数据是在SQL Server中的日期时间格式。
如果是这样,请将其保留为该格式,否则,在返回时将其转换为DateTime。

尝试将其转换为字符串上的SQL Server结束在你的DataTable运行合格,并使用C#转换为字符串。这是错误的做法。

所有你需要做的是设置DataFormatString你的GridView的绑定列列像这样:

BoundField bf = new BoundField(); 
bf.DataField = "xxxxx";//The field from your DataSource you are binding to. 
bf.HeaderText = "yyyyy";//The column header text of your GridView. 
bf.DataFormatString = "{0:MM.dd.yyyy hh:mm}"; 
gv.Columns.Add(bf);//Add the column to your GridView. 
+0

我还要补充的是,通过这样做,如果你启用排序,那么它会正常工作。如果你传递一个表示日期的字符串值,它将对该字符串值进行排序(在你的情况下),这将是不正确的,因为它会在年份之前的月份和日期进行排序。 – MikeTeeVee

+0

对不起,在这里插入,但我不能评论你删除的答案。显然,我并不是唯一一个认为你的答案不正确的人,而投票的目的是告诉你这是不正确的,并让你有机会解决它。一旦你解决了这个问题,反对票可以不做,并转换成加票。但是,不正确的答案不能留下任何反对票,因为其他读者可能认为这是正确的(他们不一定会阅读评论)。我已经把这个答案作为真诚的表示。你也没有帮助我,这不是我的问题。 –

1

,以显示它的代码与所需格式的网格,使用yourDate.ToString(yourFormat),例如:

DateTime.Today.ToString("mm.dd.yyyy") 
0
DateTime MyDateTime; 

MyDateTime = new DateTime(); 
MyDateTime = DateTime.ParseExact(MyString, "MM.dd.yyyy hh:mm", 
0
CONVERT(varchar(17),Date,113) 

利用这一点,它会得到,2011 12:58

或者使用11月29日;

SELECT CONVERT(varchar(17),OrderDate,105)+' '+CONVERT(varchar(17),OrderDate,108) as Date FROM Orders 

它会; 29-11-2011 12:58:48

相关问题