创建应用程序的图像并存储到数据库

时间:2014-04-07 06:33:14

标签: c# sql-server

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

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

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

1 个答案:

答案 0 :(得分:0)

你的问题有不同的方法。

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

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

实际上,在主管/管理员签名/发布之前,实际上存储了user1数据。您所要做的就是:

  1. 介绍/添加一些列(充当标志),例如“lastUpdatedBy_,latsUpdateDate_,createdBy_,createdDate_,posted_boolean,postedDate,postedByStr等”

  2. 在应用程序中,有控件(按钮等)允许“发布”功能(func更新表中的这些列)

    2.1您的普通Save()功能不应包括更新这些列

    2.1.1有另一个明确更新这些列的PostRecord()函数。

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

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

  3. 一般都是这样的。

    至于记录的BEFORE Vs AFTER状态,您需要为每个表创建一个日志表,例如“订单”表的“OrdersEditHistory”表。 从这里你可以记录两个实例:

    • 之前:在实际的PostRecord()函数之前触发。它捕获了记录的状态。
    • 之后:在发射PostRecord()后解雇。这是可选的,因为您仍然可以从实际主表中检索详细信息并进行比较。

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