1

我允许我的用户在绑定到 DataTable 的 DataGridView 中添加/编辑/删除数据。这一切都很好。数据很好地更新回数据库。但是,我在 DataTable 中有一些我不想在 DataGridView 中显示的字段,例如 CreatedOn 和 CreatedBy。在更新到数据适配器之前,我需要根据行的状态将值写入这些列。在这种情况下,我是否应该在数据表中为 TableNewRow 和 RowChanged 连接一些事件处理程序,并在更新数据适配器和发生 AcceptChanges 之前以这种方式操作行列?

感谢您的任何想法。

瑞安

4

1 回答 1

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

于 2012-09-28T18:38:15.127 回答