来自 Datagridview C# 的审计表

Posted

技术标签:

【中文标题】来自 Datagridview C# 的审计表【英文标题】:Audit Table from Datagridview C# 【发布时间】:2014-09-15 01:47:42 【问题描述】:

我有一个绑定到数据源的数据网格视图,该数据源被编程为使用更新功能进行所有数据库访问。因此,如果我单击提交按钮,它将简单地调用更新函数,检查是否有任何新行、已删除行或已编辑行并调用相关的 sql 命令。

我的问题是,有没有办法确定为了创建审计表而编辑了哪个单元格?然后我可以使用这些信息来获取已更改的列并创建一个表。

【问题讨论】:

我不是这些方面的专家,但在我工作的地方,数据库设置了称为触发器的东西,当更新/删除某些内容并将数据输入审计表时触发。如果您希望数据库级别处理它,您可能希望查找这些。 是的,这是我目前正在研究的解决方案。但我不确定数据集是否有某种方式来区分编辑 【参考方案1】:

使用事件来处理,例如

DataGridView.CellValueChanged

【讨论】:

【参考方案2】:

您可以像下面这样检查DataTable的DataRow.RowState Property

foreach(DataRow dr in ds.Tables["mytable"].Rows)

  if(dr.RowState == "Modified")
   
       //Do whatever you want to do Here   
   

【讨论】:

唯一的问题是我仍然需要找到更改后的列。我想如果我将此与 Rob 的答案结合起来,我可以查明更改的值

以上是关于来自 Datagridview C# 的审计表的主要内容,如果未能解决你的问题,请参考以下文章

使用查找组合框 c# 绑定 Datagridview 多列排序

使用来自另一个表单的数据更新 datagridview (C#)

C#中dataGridView用法集

c#求怎么设置datagridview的列宽

c#来自Access的数据不会显示在datagridview上

如何用来自datagridivew1 c#的信息填充datagridview2