获取datagridview列中的所有日期

时间:2012-11-15 22:47:20

标签: c# datetime datagridview

我使用以下代码获取一周中的所有日期,以便在两个日期之间相互显示它们并将它们添加到datagridview列中:

for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
  for (int j = 0; j < dtEnd.Subtract(dtStart).Days; j++)
  {
     TimeSpan counter = new TimeSpan(j, 0, 0, 0);
     dataGridView1.Columns[j].HeaderText += (dtStart + counter).DayOfWeek.ToString();
  }    
}

但这一行

dataGridView1.Columns[j].HeaderText += (dtStart + counter).DayOfWeek.ToString();

导致错误。它说:

  

指数超出范围。必须是非负数且小于集合的大小。   参数名称:index

我该如何解决问题?

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:2)

                      ↓
dataGridView1.Columns[i].HeaderText += (dtStart + counter).DayOfWeek.ToString();

在上面的代码行中应该有一个i而不是j。

答案 1 :(得分:1)

您可能打算使用i作为列的索引:

dataGridView1.Columns[i].HeaderText += (dtStart + counter).DayOfWeek.ToString();

答案 2 :(得分:0)

据推测,这条线就是抛出异常;

dataGridView1.Columns[j].HeaderText += ...

您正在使用计数器变量'i'迭代网格列,但计数器'j'用于设置值。如果您有多天而不是列,则会遇到此异常。您可能需要在此重新考虑您的设计。要么为每天添加列,要么使用行。我不知道你的意图,所以除此之外,很难提出建议。