我允许我的用户在绑定到DataTable的DataGridView中添加/编辑/删除数据。一切正常。数据很好地更新回数据库。但是,我在DataTable中有一些字段,我不想在DataGridView中看到它们,例如CreatedOn和CreatedBy。我需要在更新到数据适配器之前根据行的状态将值写入这些列。 在这种情况下,我应该在数据表中为TableNewRow和RowChanged连接一些事件处理程序,并在数据适配器更新和AcceptChanges发生之前操作行列吗?
感谢您的任何想法。
赖安
答案 0 :(得分:2)
这是我想出来的,效果很好。在将数据表传递回我的数据访问类之后,我循环表中的行并检查DataRowState。我根据DataRowState设置列值。
foreach (DataRow row in dt.Rows)
{
if (row.RowState == DataRowState.Added)
{
row["CreatedOn"] = DateTime.Now;
row["CreatedBy"] = GlobalProp.UserName;
row["ModifiedOn"] = DateTime.Now;
row["ModifiedBy"] = GlobalProp.UserName;
}
else if (row.RowState == DataRowState.Modified)
{
row["ModifiedOn"] = DateTime.Now;
row["ModifiedBy"] = GlobalProp.UserName;
}
}
希望能帮到别人!
[R