伙计我有一个日期格式为dd / mm / YYYY的字符串。
但是我需要使用datetimepicker控件。
我无法将值分配给datetimepicker,我试着将其作为
string exp = "SELECT UserPwdExpiry FROM " + MainForm.schema + "Adm.SysUser WHERE USerId ='" + cmbUserID.Text + "'";
cmd = ccs.CreateCommand();
ccs.Open();
cmd.CommandText = exp;
DateTime expiry_ = ((DateTime)cmd.ExecuteScalar());
//string _expiry_= expiry_.ToShortDateString();
ccs.Close();
在这里分配
dtpPasswordExpiry.Value = Convert.ToDateTime(_expiry_);
它给我一个错误说,格式化显示在MaxDate和MinDate之间。
请帮助。
答案 0 :(得分:0)
如果DateTime expiry_ = ((DateTime)cmd.ExecuteScalar());
此行没有错误,则您已经拥有Datetime对象。所以你可以直接将其设置为
tpPasswordExpiry.Value =expiry_;
但如果将datetime作为字符串存储在数据库中,那么上面的行将失败
string _User_modify= (string)cmd.ExecuteScalar();
DateTime dt;
if(DateTime.TryParseExact(_User_modify,
"dd/MM/YYYY",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dt))
{
tpPasswordExpiry.Value =dt;
}
答案 1 :(得分:0)
我们已经拥有:
DateTime expiry = ((DateTime)cmd.ExecuteScalar());
所以:我们知道该值是DateTime
。 DateTimePicker
控件的.Value
属性 为DateTime
,因此这里的正确语法为:
dtpPasswordExpiry.Value = expiry;
根据错误消息,唯一遗留的是MinDate
和MaxDate
。我怀疑您需要更改这两个属性的值,以使expiry
的合法值不在MinDate
- MaxDate
范围之外。如果不确定,只需打印出expiry
,dtpPasswordExpiry.MinDate
和dtpPasswordExpiry.MaxDate
的值。