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

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

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

【问题讨论】:

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

标签: c# sql datagridview bindingsource


【解决方案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 的答案结合起来,我可以查明更改的值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2020-01-05
    • 1970-01-01
    • 2021-05-20
    • 2019-12-16
    相关资源
    最近更新 更多