如何将日期从 datagridview 绑定到 c# 中的日期时间选择器?

How to bind date from datagridview to datetime picker in c#?

我在 table 中有列名 "Session",它将数据存储为“2010-2014”等格式,我从两个日期时间选择器中获取此字符串:

string dat = dateTimePicker1.Text + "-" + dateTimePicker2.Text;

我将 datetimepicker 属性 设置为 Year only 所以它给了我选择日期时的结果 “2010-2014”

在插入中,这工作正常,但为了更新,我需要将此值加载回日期时间选择器,因为根据我的示例,例如,datetimepicker1 中的文本必须是 2010 年,datetimepicker2 中的文本必须是 2014 年。

我在 google 上进行了大量搜索,结果如下:

                string str = row.Cells[5].Value.ToString();
            string first = str.Substring(0, str.IndexOf('-'));
            string second = str.Substring(str.IndexOf('-') + 1);

            dateTimePicker1.Text = Convert.ToDateTime(first).ToString();
            dateTimePicker2.Text = Convert.ToDateTime(second).ToString();

但是它抛出了一个错误:

String was not recognized as a valid DateTime

我正在使用 C# windows 应用程序开发。

任何人都知道我在哪里遗漏了什么? 提前致谢..

你需要改变这个

dateTimePicker1.Text = Convert.ToDateTime(first).ToString();

dateTimePicker1.SelectedDate = Convert.ToDateTime(first);

您转换为日期,然后又转换回字符串!!


老实说,您最好存储两个日期(开始和结束),而不仅仅是年份,因为日期由 day/month/year 组成,我觉得您可能实际上需要这样做以下使其真正起作用......

dateTimePicker1.SelectedDate = Convert.ToDateTime("01/01/" + first);

... 这样你就得到了一个可以从字符串转换的有效日期 (01/01/2015)。