【问题标题】:DateFormat in Table using C# not displaying correctly使用 C# 的表中的 DateFormat 无法正确显示
【发布时间】:2018-12-15 09:22:48
【问题描述】:

我正在尝试使用存储过程从 SQL 数据库中提取数据,结果使用占位符填充 ASP.net 页面中的表:

代码如下:

tbl.Append("<tr style='cell-padding: 2px'>");
tbl.Append("<td>" + rdr[0] + "</td>");
tbl.Append("<td>" + rdr[1] + "</td>");
tbl.Append("<td>" + rdr[2] + "</td>");
tbl.Append("<td>" + rdr[3] + "</td>");
tbl.Append("<td>" + rdr[4] + "</td>");
tbl.Append("<td>" + rdr[5] + "</td>");
tbl.Append("<td>" + rdr[6] + "</td>");
tbl.Append("</tr>");

这是结果。

First Name  Last Name   Team    Manager Return Date Return  Addendum
Firstname   LastName    Team    Manager 11/17/2014 0:00 Yes Doc.pdf

我似乎无法将返回日期设为:2014 年 11 月 17 日

【问题讨论】:

  • 您可能需要将列检索为DateTime 并将其转换为字符串,例如rdr.GetDateTime(4).ToShortDateString()
  • 您必须在 SQL 或代码中格式化日期。这不是在 C# 中显示数据的最佳方式,您可以使用数据表或其他方式。
  • @DanWilson,感谢您的评论,我对此很陌生,这有助于我学习,您的意思是 tbl.Append("" + rdr.GetDateTime(4).toShortDateString () + "");
  • @Brad,感谢您的建议,我边走边学。
  • @Dan Wilson,根据您的指示,我让它按需要显示。非常感谢您的帮助....

标签: c# sql asp.net stored-procedures html-table


【解决方案1】:

使用这个

 rdr[3].ToString("MM/dd/yyyy")

【讨论】:

    【解决方案2】:

    您可以使用带有格式说明符的字符串插值。很难辨认哪一列有日期,所以让我们选择rdr[3]。您可以像我在这里所做的那样使用custom format specifier,或者使用standard format specifier,这将根据您的系统设置(例如区域设置)来改变结果。

    {
    tbl.Append("<tr style='cell-padding: 2px'>");
    tbl.Append($"<td>{rdr[0]}</td>");
    tbl.Append($"<td>{rdr[1]}</td>");
    tbl.Append($"<td>{rdr[2]}</td>");
    tbl.Append($"<td>{rdr[3]:MM/dd/yyyy}</td>");
    tbl.Append($"<td>{rdr[4]}</td>");
    tbl.Append($"<td>{rdr[5]}</td>");
    tbl.Append($"<td>{rdr[6]}</td>");
    tbl.Append("</tr>");
    }
    

    或者你可以使用tbl.Append(string.Format("&lt;td&gt;{0:MM/dd/yyyy}&lt;/td&gt;",rdr[3]));插值只是调用string.Format的一种简写方式。

    使用这种类型的格式比在对象上调用 ToString() 方法更可取,因为它总是有效的。 null 只会被转换为空字符串。

    【讨论】:

      猜你喜欢
      • 2021-01-10
      • 1970-01-01
      • 2022-11-10
      • 2017-10-19
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      相关资源
      最近更新 更多