仅将年份数据库加载到datetimepicker年份c#

仅将年份数据库加载到datetimepicker年份c#,c#,forms,datagridview,datetimepicker,C#,Forms,Datagridview,Datetimepicker,我有两张表格。表格1显示图书数据,表格2编辑图书数据。。。在form2中,我使用自定义格式“yyyy”(仅限年份)的datetimepicker来更新图书出版年份。。。。因此,当我加载Form2 datetimepicker时,它不会显示图书出版年份,而是显示2012年(当前年份) txttahun(是日期时间选择器名称) 这是我在form2加载并显示form1中的数据时的代码 DateTime elshose; bool elshoseOkay; elshose

我有两张表格。表格1显示图书数据,表格2编辑图书数据。。。在form2中,我使用自定义格式“yyyy”(仅限年份)的datetimepicker来更新图书出版年份。。。。因此,当我加载Form2 datetimepicker时,它不会显示图书出版年份,而是显示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();

那么,如何让datetimepicker显示我输入的图书出版年份?

可能是在您的情况下DateTime.TryParse将始终失败。调试并查看应用程序是否到达为
txttahun

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

由于
elshoes
是DateTime对象,您可以直接将其指定为
dateTimePicker1.Value

dateTimePicker1.Value = elshose;

运行下面的代码,并检查您作为一年得到了什么

    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();
    }
    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();
    }