【发布时间】:2015-10-15 10:36:40
【问题描述】:
我正在使用 c# winform sql server
在我的数据库中,我尝试管理小公司的员工假期,因此创建了两个表
第一个表名为tblMember
idMember (PK, int, not null)
memberName(varchar(50), null)
该表以一对多关系相关
第二个表名为tblVacations
idVacation (PK, int, not null)
vacationStart(日期,空)
vacationEnd(日期,空)
idMember_L(FK, int, null)
然后我创建了一个带有两个 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;
}
}
}
但它给了我一个错误
索引超出范围。必须是非负数且小于集合的大小。
谢谢
【问题讨论】:
标签: c# datagridview cell-formatting