我正在使用 c# winform sql server
在我的数据库中,我尝试管理我的小公司的员工假期,所以我创建了两个表
第一个表称为tblMember
idMember
(PK,整数,不为空)
memberName
(varchar(50),空)
该表以一对多关系关联到
第二个表称为tblVacations
idVacation
(PK,整数,不为空)
vacationStart
(日期,空)
vacationEnd
(日期,空)
idMember_L
(FK,整数,空)
然后我创建了一个带有两个 datagridview 的表单,第一个调用dg_member
填充它的数据(来自 tblMember 的名称)抛出一个存储过程
第二个datagridviewdgVacation
填充相关数据
现在我想把今天缺席的人的名字涂成红色dg_member
(今天介于vacationStart
和之间vacationEnd
),如果成员今天来(今天相等vacationEnd
),名字变成绿色
我尝试了代码:
private void dgMember_Grade_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
foreach (DataGridViewRow Myrow in dgMember_Grade.Rows)
{
var cvStart = dgVacation.Rows[0].Cells[1].Value;
var cvEnd = dgVacation.Rows[0].Cells[2].Value;
if (cvStart == null || cvStart == DBNull.Value)
continue;
DateTime startDate = Convert.ToDateTime(cvStart);
DateTime endDate = Convert.ToDateTime(cvEnd);
if (startDate < DateTime.Now && endDate > DateTime.Now)
{
Myrow.DefaultCellStyle.BackColor = Color.Red;
}
else if (endDate == DateTime.Now)
{
Myrow.DefaultCellStyle.BackColor = Color.Green;
}
}
}
但它给了我一个错误
指数超出范围。必须是非负数且小于集合的大小。
谢谢你