ASP .NET - 在 GridView 中更新之前保存现有数据的副本

Posted

技术标签:

【中文标题】ASP .NET - 在 GridView 中更新之前保存现有数据的副本【英文标题】:ASP .NET - Save copy of existing data before updating in GridView 【发布时间】:2009-07-23 15:21:06 【问题描述】:

我想确保网站用户不会弄乱主数据表,因此在每次更新之前,应将未更新的数据存储到历史表中。

我正在考虑使用 GridView 上的“RowUpdating”事件来执行此操作。

如何使用现有的 SQLDataSource 手动运行插入查询?

整体流程如下:

    gridview 显示 字段 1 字段 2 测试 1234 用户编辑 gridview 值 字段 1 字段 2 测试 3333 3a。用户选择“更新”按钮 3b。系统记录数据被测试,1234

【问题讨论】:

几年前我和一家电力公司做了一个项目,他们要求每次更新(添加,删除)都记录到一个单独的表中。我们这样做是为了让所有的数据库调用到存储过程,我们在存储过程中做备份。不确定这是否回答了您的问题,这只是经验分享。由于备份过于依赖代码(我们不知道存储库模式,该项目实际上是使用经典的 ASP VB 完成的),因此我们确实在决定实施方面遇到了困难。 【参考方案1】:

您可以在主数据表上设置一个触发器,将更新记录到单独的历史表中。只要这个 UI 不会太忙并且不会像疯了一样敲桌子,触发器可能是合适的。

【讨论】:

触发器会拉动选定的主键值吗? 触发器使用一个临时表(不确定这是否是正确的术语),其中包含正在插入、更新或删除的记录。例如,在给定表的 INSERT 操作中,您将使用“SELECT myPrimaryKey FROM Inserted”,对于删除,它将使用“SELECT myPrimaryKey FROM Deleted”。可以设置一个变量为键值,光标带它,其他操作。

以上是关于ASP .NET - 在 GridView 中更新之前保存现有数据的副本的主要内容,如果未能解决你的问题,请参考以下文章

从 ASP.NET GridView 更新中获取 textarea 中的文本

更新asp.net GridView中的行时出错

在 GridView DataBind 之后更新 ASP.NET 页面

当在 asp.net 中插入更新的记录而不刷新页面时,如何自动更新 Gridview?

asp.net webforms ajax 更新gridview

向导控件中的 Gridview 自定义分页在 asp.net 中无法正常工作