转换一个DataGridView单元格数值为一个DateTime(Convert a DataGri

2019-10-21 03:42发布

我一直在寻找了一段时间,现在的这个答案:

我有一个有日期的细胞一个DataGridView,我需要做的价值在该单元格datetime值可以与我的DateTimePicker去

到目前为止,我已经做到了这一点,但它不工作,它给了我一个System.FormatException(显然它不能识别字符串作为一个DateTime,这听起来是正确的)

这是有问题的代码:

int index = ReservationDataGridView.SelectedRows[0].Index;
string date = ReservationDataGridView[0, 1].Value.ToString();
DateTime test = DateTime.ParseExact(date, "dd/MM/yyyy - hh:mm tt", System.Globalization.CultureInfo.InvariantCulture);

MessageBox.Show(test.ToString()

这是我的DateTimePicker是如何被格式化:

ReservationDateTimePicker.Format = DateTimePickerFormat.Custom;
ReservationDateTimePicker.CustomFormat = "dd/MM/yyyy - hh:mm tt";

这是日期,如何看待在DataGridView:

我如何能在DataGridView的日期值转换为日期时间,将适合与该格式将DateTimePicker任何想法?

Answer 1:

而不是花string的代表性DateTime从DataGridView中单元格的值,而不是获取实际的DateTime从DataDridview的数据源值。



Answer 2:

到datagridview的单元格的值转换为日期时间的最好方法是使用转换功能。 如果您使用的是通过一个DataGridView一个循环。 举例说, for循环。

for(int i=0; i<dataGridView1.Rows.Count; i++)
{
  DateTime date =  Convert.ToDateTime(dataGridView1.Rows[i].Cells[1].Value.ToString());   
}

如果您没有使用任何环通的dataGridView不是简单地使用下面的代码。

DateTime date2 = Convert.ToDateTime(dataGridView1.CurrentRow.Cells[0].Value.ToString());

如果您正在使用dataGridView1 CellContent Click事件不是使用下面的代码。

private void grd_All_Degrees_CellClick(object sender, DataGridViewCellEventArgs e)
{
  DateTime date3 = Convert.ToDateTime(grd_All_Degrees.Rows[e.RowIndex].Cells[0].Value.ToString());     
}


文章来源: Convert a DataGridView Cell Value into a DateTime