0

我以字符串格式从数据库 2 日期字段中获取,例如:

“yyyy.mm.dd”

然后,在我的表单中,我想将 DataBinding 添加到 2 个 DatePicker 中,它们将显示如下日期:

dtStart.DataBindings.Add(new Binding("Value", _ds.Tables["invoice"], "startdate"));
dtEnd.DataBindings.Add(new Binding("Value", _ds.Tables["invoice"], "enddate"));

现在的问题是,当我从 DatePicker 更改日期时,值将是一个日期,我需要更新该值,但使用相同的字符串格式“yyyy.mm.dd”。

任何线索我怎么能强制这样做?

非常感谢

4

1 回答 1

1

如果您的 DataGridViewColumnstartdatestring. 您可以将代码添加到Parsea 的事件处理程序Binding以在更新回 DataSource 之前格式化值:

Binding bind = new Binding("Value", _ds.Tables["invoice"], "startdate");
bind.Parse += (s,e) => {
   e.Value = ((DateTime)e.Value).ToString("yyyy.mm.dd");
};
dtStart.DataBindings.Add(bind);
//Do the same for dtEnd

但是,我建议将您设置DataGridViewColumn data typeDateTime. 然后您将不需要任何自定义Parsing,只需设置该列中单元格的格式,如下所示:

dataGridView1.Columns["startdate"].DefaultCellStyle.Format = "yyyy.mm.dd";
于 2013-08-17T03:47:57.947 回答