我在表中有列名"Session",其中存储数据为"2010-2014"等格式,我从两个日期时间选择器中获得此字符串:
string dat = dateTimePicker1.Text + "-" + dateTimePicker2.Text;
我将datetimepicker属性设置为Year only,因此当我选择日期时它会给我结果"2010 - 2014"
在插入这是工作良好,但更新我需要加载此值回日期时间选择器,因为它的e-g在datetimepicker1文本必须是2010年,在datetimepicker2文本必须是2014年根据我的例子。
我在谷歌上做了很多搜索,并这样做:
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);
您转换为日期,然后又返回到字符串!!
老实说,你最好存储两个日期(开始和结束),而不是年份,因为日期是由日/月/年组成的,我有一种感觉,你可能需要做以下事情来使它实际工作…
dateTimePicker1.SelectedDate = Convert.ToDateTime("01/01/" + first);
…这样你就可以得到一个有效的日期(01/01/2015),它可以从字符串转换。