If you are going to ask a question, then you really need to make sure that your code fragment will compile - that won't.
1) column3 is declared twice in the same scope.
2)
this
is always spelt with a 't' at the front. (Not that you need to use
this
much anyway, and certainly not in that code.)
3) You cannot use "i" after the loop - it is out of scope (and probably outside your array even if it was in scope)
Then, and only then can you solve your problem: You aren't putting data in the right row.
The Add method returns an index, which tells you where the new row was inserted. Use it.
for (int i = 1; i < 7; i++)
{
int rowIndex = dgTimeInfo.Rows.Add();
dgTimeInfo.Rows[rowIndex].Cells["Day"].Value = Sunday;
DataGridViewColumn column = dgTimeInfo.Columns["Day"];
column.Width = 110;
dgTimeInfo.Rows[rowIndex].Cells["Date"].Value = grid[i][1].ToString();
DataGridViewColumn column1 = dgTimeInfo.Columns["Date"];
column1.Width = 100;
dgTimeInfo.Rows[rowIndex].Cells["TimesheetStatus"].Value = "Incomplete";
DataGridViewColumn column3 = dgTimeInfo.Columns["TimesheetStatus"];
column3.Width = 100;
dgTimeInfo.Rows[rowIndex].Cells["Action"].Value = "Details...";
dgTimeInfo.Rows[rowIndex].Cells["GoAction"].Value = "Go";
}
Better still, move the fixed stuff outside the loop, and tighten the code a little:
dgTimeInfo.Columns["Day"].Width = 110;
dgTimeInfo.Columns["Date"].Width = 100;
dgTimeInfo.Columns["TimesheetStatus"].Width = 100;
for (int i = 1; i < 7; i++)
{
int rowIndex = dgTimeInfo.Rows.Add();
DataGridViewRow row = dgTimeInfo.Rows[rowIndex];
row.Cells["Day"].Value = Sunday;
row.Cells["Date"].Value = grid[i][1].ToString();
row.Cells["TimesheetStatus"].Value = "Incomplete";
row.Cells["Action"].Value = "Details...";
row.Cells["GoAction"].Value = "Go";
}