我有Textbox
受SQL服务器数据库限制
列类型为日期。因此该列中没有时间
将数据从数据库绑定到此Textbox
时,它会显示带有时间的日期,这看起来像是默认时间或某些东西,因为它始终具有相同的值= 12:00:00
TB_Birthday.Text = dt.Rows[1][5].ToString();
该日期最早来自哪里? last如何删除此时间并仅显示日期?
我将.net4与vs 2013一起使用
答案 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
结构包含DateTime
和Date
部分。在您的情况下,Time
部分是全零。但是,当您借助Time
进行格式化时,将使用默认格式,在您的情况下,该格式包括.ToString()
部分。所以你有
Time
全零时间是午夜( 12:00:00 9/14/2019
,以12小时格式)