【问题标题】:Convert values from DataGridView to List<DateTime>将值从 DataGridView 转换为 List<DateTime>
【发布时间】:2022-02-22 02:09:51
【问题描述】:

我需要将值从 DataGridView 转换为 List (dd-mm-yyyy)。要将值添加到 DataGridView,我使用 DateTimePicker 和 Button。在 Button_Click 上:

DateTime dt = datetimepicker1.Value.Date;
RowsWithDates.Rows.Add(dt.ToString("d"));

现在我想将 RowsWithDates (DataGridView) 中的所有日期添加到列表中。我试过这个,但没有成功。

List<DateTime> items = new List<DateTime>();
foreach (DataGridViewRow dr in RowsWithDates.Rows)
{
    DateTime item = new DateTime();
    foreach (DataGridViewCell dc in dr.Cells)
    {
        item = dc.Value;//here i had error (can't convert object to System.DateTime)
    }
    items.Add(item);
}

【问题讨论】:

  • 你试过了吗? item = Convert.ToDateTime(dc.Value)
  • 我会把它作为答案发布,你可以接受它
  • 我会说这是一种不好的做法。您在Button_Click 中有一次 DateTime 实例。但是您丢失了它并存储了一个字符串。稍后您尝试再次将其从字符串恢复到 DateTime。我会将 DateTime 添加到网格中并使用 UI 格式化解决方案 - 例如CellFormatting - 按照用户的需要显示。这样数据和演示文稿就不会混淆。

标签: c# list datetime datagridview


【解决方案1】:

您需要将dc.Value 转换为日期时间。

item = Convert.ToDateTime(dc.Value)

【讨论】:

    猜你喜欢
    • 2012-10-25
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多