具有日期格式的c#文本框数据绑定

时间:2018-09-21 08:32:58

标签: c# textbox .net-4.0 string-formatting

我有Textbox受SQL服务器数据库限制

列类型为日期。因此该列中没有时间

将数据从数据库绑定到此Textbox时,它会显示带有时间的日期,这看起来像是默认时间或某些东西,因为它始终具有相同的值= 12:00:00

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

该日期最早来自哪里? last如何删除此时间并仅显示日期?

我将.net4与vs 2013一起使用

enter image description here

1 个答案:

答案 0 :(得分:3)

由于dt.Rows[1][5]返回object,并且我们要应用 format ,因此必须将其强制转换为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);

如果?.ToString().ToString() propagte 为{{1},则将dt.Rows[1][5]代替null以便不引发异常}}:TB_Birthday.Text将有一个空白的TB_Birthday.Text。如果 .net 4.0 vs 2013 (请参见下面的评论),我们必须输入

Text

编辑:时间部分来自哪里。

当我们放

 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]DateTime结构包含DateTimeDate部分。在您的情况下,Time部分是全零。但是,当您借助Time进行格式化时,将使用默认格式,在您的情况下,该格式包括.ToString()部分。所以你有

Time

全零时间是午夜( 12:00:00 9/14/2019 ,以12小时格式)