C# 创建应用程序映像并存储到数据库

C# 创建应用程序映像并存储到数据库,c#,sql-server,C#,Sql Server,我已经用c#创建了一个应用程序。我的问题是,当用户试图通过此应用程序编辑数据库中的新内容时,它不会直接保存到数据库中的主表中,而是存储在另一个表中,并等待其他用户批准 在这种情况下,如果用户尝试编辑,我希望保存应用程序图像并存储到表中,当另一个用户来批准它时,它可以在编辑前和编辑后显示不同的内容,这非常方便用户查看和决策 我在网上搜索过,但我找不到解决这个问题的好办法,任何人都可以帮忙。好的,有不同的方法来解决你的问题 例如,您可以模仿许多会计和/或销售点系统(如AccPac、PsManager

我已经用c#创建了一个应用程序。我的问题是,当用户试图通过此应用程序编辑数据库中的新内容时,它不会直接保存到数据库中的主表中,而是存储在另一个表中,并等待其他用户批准

在这种情况下,如果用户尝试编辑,我希望保存应用程序图像并存储到表中,当另一个用户来批准它时,它可以在编辑前和编辑后显示不同的内容,这非常方便用户查看和决策


我在网上搜索过,但我找不到解决这个问题的好办法,任何人都可以帮忙。

好的,有不同的方法来解决你的问题

例如,您可以模仿许多会计和/或销售点系统(如AccPac、PsManager、QuickBooks、Rx Solution、Pastel、UniSove等)中使用的“过账”和“签名”技术

通常,该方法不涉及在数据库或系统注册表中临时存储/缓存数据-不

在任何情况下,实际发生的事情都是在主管/管理员签名/发布之前存储user1数据。你所要做的就是:

  • 引入/添加一些列(用作标志),如“LastUpdateBy、latsUpdateDate、createdBy、createdDate、posted、postedByStr等)

  • 在应用程序中,具有允许“过账”功能的控件(按钮等)(更新表中这些列的func)

    2.1正常的Save()功能不应包括更新这些列

    2.1.1使用另一个PostRecord()函数显式更新这些列

    2.1.2只有主管/管理员(通过登录凭据和访问权限)可以通过控件触发此PostRecord)()

    2.2只有在主管/管理员登录时,控件才可见/启用 2.2.1如果该记录集(绑定中的当前位置)已经有列“posted_boolean”=true,则控件不可见/启用

  • 一般来说是这样的

    至于记录的BEFORE Vs AFTER状态,您需要为每个表创建一个日志表,例如,为“Orders”表创建一个“ordersedithisticstory”表。 从中可以记录两个实例:

    • before:在实际PostRecord()func之前激发。它捕获记录的状态
    • after:firing after firing PostRecord()。这是可选的,因为您仍然可以从实际的主表中检索详细信息并进行比较

    我希望这会有所帮助。Chagbert。

    这不是意味着每次用户进行编辑时,您都必须保存一个新的副本吗?您可以创建一个字段来存储每个副本的版本号,以便跟踪哪个副本较新。@Failed Programming我创建了另一个表来存储用户在该表中获得批准之前完成的所有活动,而不是仅适用于edit.exp(添加/编辑/删除)