仅将年份数据库加载到日期时间选取器年份 C#

本文关键字:时间 选取 日期 加载 数据库 | 更新日期: 2023-09-27 18:35:32

我有两个表单。 表单 1 显示书籍数据,表单 2 用于编辑书籍数据...在 Form2 中,我有自定义格式为"yyyy"(仅限年份)的日期时间选择器来更新书籍出版年份。因此,当我加载表单 2 日期时间选择器时,不显示书籍出版年份,但它显示 2012(当前年份)......

Txttahun(是日期时间选择器名称)

这是 form2 加载并显示来自 form1 的数据时我的代码

DateTime elshose;
        bool elshoseOkay;
        elshoseOkay = DateTime.TryParse(Data["tahunterbit"].ToString(), out elshose);
        if (elshoseOkay)
        {
            txttahun.CustomFormat = "yyyy";
            txttahun.Format = DateTimePickerFormat.Custom;
            txttahun.Text = elshose.Year.ToString();
        }
        this.TopMost = true;
        txtkode.Text = Data["kodebuku"].ToString();
        txtkode1.Text = Data["kodebuku"].ToString();
        txtjudul.Text = Data["judulbuku"].ToString();
        txtpengarang.Text = Data["pengarang"].ToString();
        txtkategori.Text = Data["namakategori"].ToString();
        txtpenerbit.Text = Data["penerbit"].ToString();
        //txttahun.Text = Data["tahunterbit"].ToString();
        txtstok.Text = Data["stokbuku"].ToString();
        tglter.Text = Data["tglpenerimaan"].ToString();

那么如何让日期时间选择器显示我输入的书籍出版年份呢?

仅将年份数据库加载到日期时间选取器年份 C#

可能是在你的情况下 DateTime.TryParse 将始终失败。 调试并查看应用程序是否来到您设置文本的行txttahun

如果使用dateTimePicker.Text属性,则需要提供正确的日期时间字符串。 否则它将失败。

由于elshose是 DateTime 对象,因此您可以直接将其分配为 dateTimePicker1.Value

dateTimePicker1.Value = elshose;

txttahun.Text = elshose.ToString();

运行下面的代码并检查您获得的年份。

    DateTime elshose;
    txttahun.CustomFormat = "yyyy";
    txttahun.Format = DateTimePickerFormat.Custom;
    if (DateTime.TryParse(Data["tahunterbit"].ToString(), out elshose))
    {
        txttahun.Text = elshose.ToString();
    }else
    {
       // this line only for testing....
       txttahun.Text = DateTime.Today.AddYears(-5).ToString();
    }