0

みんな 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_); 

FORMAT SHOW BE BETWEEN MaxDate と MinDate というエラーが表示されます。

助けてください。

4

2 に答える 2

0

DateTime expiry_ = ((DateTime)cmd.ExecuteScalar());この行がエラーなしで実行されている場合は、既に Datetime オブジェクトがあります。したがって、次のように直接設定できます

tpPasswordExpiry.Value =expiry_;

しかし、データベースに日時を文字列として保存すると、上記の行は失敗します

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;
}
于 2013-09-13T07:10:01.150 に答える
0

私たちはすでに持っています:

DateTime expiry = ((DateTime)cmd.ExecuteScalar());

つまり、値が a であることはわかっていますDateTimeDateTimePickerコントロールのプロパティ.ValueあるDateTimeため、正しい構文は次のとおりです。

dtpPasswordExpiry.Value = expiry;

エラーメッセージに基づいて、残るのはMinDateandだけMaxDateです。これら 2 つのプロパティの値を変更して、範囲外でexpiryはない正当な値になるようにする必要があると思われます。不明な場合は、 、およびの値を単純に出力してください。MinDateMaxDateexpirydtpPasswordExpiry.MinDatedtpPasswordExpiry.MaxDate

于 2013-09-13T07:17:07.487 に答える