我厌倦了修复数据网格视图中的逻辑错误,有人可以帮助我吗? 这是我的代码。
`
while (dr.Read())
{
int id = dr.GetInt32(0);
DateTime startBook = dr.GetDateTime(2);
DateTime endBook = dr.GetDateTime(3);
int startBook_C = startBook.Day;
int endBook_C = endBook.Day;
int TotalDays = endBook_C - startBook_C;
//dataGridView1(startBook_C, id - 1).Style.BackColor = Color.Blue;
dataGridView1.Rows[startBook_C].Cells[endBook_C-1].Style.BackColor = Color.Blue;
int i;
for (i = 1; i <= TotalDays; i++)
{
dataGridView1.Rows[startBook_C + i].Cells[endBook_C -1].Style.BackColor = Color.Blue;
//dataGridView1.Rows[startBook_C].Cells[carID - 1].Style.BackColor = Color.Blue;
// dataGridView1(startBook_C + i, id - 1).Style.BackColor = Color.Red;/* TODO ERROR: Skipped SkippedTokensTrivia */
TotalDays -= 1;
}
}
Con.Close();
`
我的datagridview有问题,这是逻辑错误,我不知道我的错误是什么,所以我在这里问并请注意所有大师帮助修复我的datagridview中的逻辑错误。我有下面的图片,请访问链接看看我的意思。
考虑
startBook.Day= day 1
和endBook.Day = day 3
(ID 23的行)。
第一个循环i =1
;
然后
dataGridView1.Rows[startBook_C + i].Cells[endBook_C -1]
是 dataGridView1.Rows[**2**].Cells[**2**]
(从 0 开始),因此提供的图像显示 DataGrid 视图表[3][3] 是蓝色。
对于 ID 23,行为 0(第一行)。 cell从4开始(第五个,偏移量为4,//ID+CARID+book StartDay+book EndDay=4。)
总天数 -= 1;循环中不需要。
while (dr.Read())
{
int offset = 4;//ID+CARID+book StartDay+book EndDay=4.
int id = dr.GetInt32(0);
DateTime startBook = dr.GetDateTime(2);
DateTime endBook = dr.GetDateTime(3);
int startBook_C = startBook.Day;//1
int endBook_C = endBook.Day;//3
int TotalDays = endBook_C - startBook_C; //2
for (int i = 0; i <= TotalDays; i++)
{
dataGridView1.Rows[0].Cells[offset+startBook_C - 1+i].Style.BackColor = Color.Blue;
}
}
Con.Close();