从数据库中提取数据时如何在 GridView 中仅显示日期? C#
Posted
技术标签:
【中文标题】从数据库中提取数据时如何在 GridView 中仅显示日期? C#【英文标题】:How to display only date in GridView when pulling data from a DB? C# 【发布时间】:2014-02-24 10:11:34 【问题描述】:我正在从访问数据库中提取数据以显示在 ASP.NET 项目的 GridView 控件中。它工作正常,但我想看看我是否可以格式化正在提取的数据。目前,任何货币都从 xx.xx 截断为仅美元金额。日期也显示 mm/dd/yyyy hh/mm/ss AM/PM
我尝试将数据库本身编辑为正确的值(我将货币字段设置为“货币”,将日期字段设置为“短日期”,但当我拉出该日期时,它仍然显示它们未格式化。
编辑:抱歉,不得不记下代码
有什么想法吗? 谢谢
【问题讨论】:
请用一些示例代码编辑您的问题。 刚刚添加了代码。谢谢 请从 aspx 页面为 gridview 添加标记。可能需要为列设置格式字符串。 【参考方案1】:在你的网格视图中添加名为DataFormatString
的属性
DataFormatString 示例:
0:dd MMMM yyyy - 2006 年 2 月 24 日 0:MMM dd - 给出 2 月 24 日(用 MMMM 代替 MMM 来代替完整的月份名称 而不是缩写) 0:dd/MM/yy - 给出 24/02/06 0:dd/MM/yyyy - 给出 24/02/2006示例代码
<asp:BoundField HeaderText="Date"
DataField="SampleDate"
DataFormatString="0:MM/dd/yyyy" >
MSDN BoundField.DataFormatString Property
【讨论】:
谢谢!这很好用,但现在我得到了格式化的列,在它们旁边还有另一组来自未格式化的代码生成的列。我使用的代码:DataFormatString="0:d"
将其本地化为任何文化。【参考方案2】:
您只需要根据您希望的填充方式设置数据格式字符串。
如 MSDN 页面所示:
金钱:
<asp:BoundColumn HeaderText="Price" DataField="Price"
DataFormatString="0:c" />
使用 0:c,在 c 值之后放置一个数字(例如 0:c2)将为您提供那么多小数位。
日期:
<asp:boundfield datafield="MyDate" dataformatstring="0:MM/dd/yyyy" />
【讨论】:
【参考方案3】:一种解决方案是:
<asp:GridView ID="gvLEmployees" runat="server" AutoGenerateColumns="false" >
<Columns>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<%# Eval("Name") %>
</asp:TemplateField>
<asp:TemplateField HeaderText="Date">
<ItemTemplate>
<%# Convert.ToDateTime(Eval("JoinDate")).ToShortDateString() %>
OR
<%# Convert.ToDateTime(Eval("JoinDate")).ToString("d") %>
</ItemTemplate>
</asp:TemplateField>
</Column>
</Gridview>
【讨论】:
【参考方案4】:您必须创建一个BoundField,设置它的属性,包括属性dataformatstring,您可以使用该属性设置GridView中出现的字段格式,并将其添加到GridView控件中。
下面是一些代码
public GridView Cr_GridView(string[] ColNames,string[] ColLable, string[] ColFormat)
GridView GV = new GridView();
int x = ColNames.GetUpperBound(0);
for (int i = 0; i < x; i++)
BoundField GvField = new BoundField();
GvField.DataField = ColNames[i];
GvField.HeaderText = ColLable[i];
GvField.DataFormatString = ColFormat[i];// for example "0:dd/MM/yyyy" for a date field
GV.Columns.Add(GvField);
return GV;
【讨论】:
以上是关于从数据库中提取数据时如何在 GridView 中仅显示日期? C#的主要内容,如果未能解决你的问题,请参考以下文章