C# 将日期数据类型的SqlDataReader放入maskedtextbox
您好,我有一个C# 将日期数据类型的SqlDataReader放入maskedtextbox,c#,sql,sql-server,winforms,C#,Sql,Sql Server,Winforms,您好,我有一个SqlDataReader,它用掩码MM/DD/YYYY将日期数据类型从SQL DB读取到maskedTextBox,但当日期为2005年5月5日时,它将显示在maskedTextBox中,如Windows XP上的55/20/05所示 有没有办法防止这种情况发生 在Windows 8上,它被读取为5_u/5_u/2005,这是正确的 string query = "SELECT * FROM events WHERE name='" + selectedro
SqlDataReader
,它用掩码MM/DD/YYYY
将日期数据类型从SQL DB读取到maskedTextBox
,但当日期为2005年5月5日时,它将显示在maskedTextBox中,如Windows XP上的55/20/05所示
有没有办法防止这种情况发生
在Windows 8上,它被读取为5_u/5_u/2005,这是正确的
string query = "SELECT * FROM events WHERE name='" + selectedrow + "' AND year='" + selectedyear+ "'";
SqlCommand command= new SqlCommand(query, con);
con.Open();
SqlDataReader read= command.ExecuteReader();
if (read.Read())
{
object nulldate = (maskedTextBox2.Text = read.IsDBNull(24) ?
string.Empty : read.GetDateTime(24).ToShortDateString()); } con.Close();
谢谢你抽出时间 我没有使用屏蔽文本框,但是您可以使用提供格式选项的DateTime-ToString覆盖之一 如本文所述,类似以下内容:
string formatted = read.IsDBNull(24) ? string.Empty : read.GetDateTime(24).ToString("MM/dd/yyyy");
屏蔽文本框仅在windows xp SP3(或针对x64版本的SP2)上受支持。最简单的解决方案是在安装的xp上运行windows update。(请注意,您的sql cmd字符串易受注入攻击)@Amber这是正确的,我的测试机器是SP3,maskedtextbox显示正确,但加载日期和月份时,屏幕上没有0。例如,2012年12月12日将正确加载