c# 文本框数据与日期格式绑定

c# textbox data binding with date format

Textbox 从 sql 服务器数据库

绑定

列类型是日期。所以那一栏没有时间

当将数据库中的数据绑定到此 Textbox 时,它显示日期和时间它看起来像默认时间或其他东西,因为它始终具有相同的值 = 12:00:00

TB_Birthday.Text = dt.Rows[1][5].ToString();

首先那个日期是从哪里来的? last 如何删除这个时间并只显示日期?

我在 vs 2013 中使用 .net4

因为 dt.Rows[1][5] returns object 并且我们想要应用 格式 我们必须将其转换为 IFormattable 接口:

 using System.Globalization;

 ...

 // "M/d/yyyy" - Month / Day / Year in this order; e.g. "9/14/2019"
 TB_Birthday.Text = (dt.Rows[1][5] as IFormattable)
   ?.ToString("M/d/yyyy", CultureInfo.CurrentCulture);

如果 dt.Rows[1][5]nullpropagte,我把 ?.ToString() 而不是 .ToString() 是为了不抛出异常null 到 TB_Birthday.TextTB_Birthday.Text 将有一个空的 Text。在 .net 4.0 vs 2013 的情况下(见下面的评论)我们必须把

 TB_Birthday.Text = (dt.Rows[1][5] as IFormattable)
   ?.ToString("M/d/yyyy", CultureInfo.CurrentCulture);

编辑:时间部分的来源。

当我们把

 TB_Birthday.Text = dt.Rows[1][5].ToString();

我们阅读了 dt.Rows[1][5],它被装箱 DateTimeDateTime 结构有 DateTime 部分。在您的情况下,Time 部分是 全零 。但是,当您在 .ToString() 的帮助下格式化时,将使用默认格式,在您的情况下包括 Time 部分。所以你有

 12:00:00 9/14/2019

全零时间是午夜(12:00:00 12 小时格式)