我现在一直在寻找这个答案:
我有一个datagridview,其中有一个带有日期的单元格,我需要在该单元格中创建一个DateTime值,该值可以与我的DateTimePicker一起使用
到目前为止,我已经完成了这项工作,但是它没有工作,它给了我一个System.FormatException(显然它无法将字符串识别为DateTime,这听起来是正确的)< / p>
这是有问题的代码:
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的Date值转换为适合具有该formaT的DateTimePicker的DateTime的任何想法?
答案 0 :(得分:4)
将datagridview单元格值转换为datetime的最佳方法是使用convert函数。
如果您正在通过dataGridView使用循环。比如说for
Loop。
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());
}
答案 1 :(得分:0)
而不是从DataGridview单元格中获取string
值的DateTime
表示,而是从DataDridview的数据源中检索实际的DateTime
值。