c/s系统在保存功能上如何设计更合理些?
--------------------------------
可能发在这里并不太合适,因为这是开发工具的问题,但是毕竟与数据库有关,所以在这里问问,
举例,在客户端,用户在表格中进行数据的修改。有两种设计模式:
1。用户随改随着更新到后台数据库,比如用户只要下移表格,就进行更新。这样可以最大程序的保证用户的修改不会丢失。
2。用户修改后,只要按下“保存”按钮,数据才会提交到服务器。比较一下,我认为第二种更加严谨些,因为对于网络版的操作,在保存时要做一些验证,比如数据已经审核就不能改了。
如果第一种模式,客户每移动一条记录,就进行验证,然后保存,网络上的传输量将变大许多。问问大家,这种表格编辑功能,如何实现更合理些。我现在设计成第二种方式,但是用户总抱怨,如果忘记保存,数据就白输了。

解决方案 »

  1.   

    表格的单元值Change事件中,设置模块级的修改标记为真。
    退出时检查修改标记。
      

  2.   

    请参考http://blog.csdn.net/WallesCai/archive/2007/08/17/1749127.aspx在这篇文章中,我正好举了一个关于内容未保存退出的例子,有实际代码,楼主基本上可以直接使用
      

  3.   


    不知道用户在什么样的界面上进行修改的?举个例子:如果数据是显示在TEXTBOX中的,那么,我只需要在TEXTBOX发生改变事件时,改一个标志,表示"已经被修改".看看VB6的IDE里的做法,参考一下.
      

  4.   

    Dim bChangeFlag as Boolean '这个用来标志是否更改在 Form_Load 内,添加:bChangeFlag = False '一开始,修改标志都是False
    --------------------------------------------------------------------------在 Text1_Change() 或者 Text1_KeyPress 内加入 标志判断bChangeFlag = TRUE ' 只要在Text1内按键盘,或者资料被更改,都判断为True.--------------------------------------------------------------------------在保存动作中,如果用户按了保存按钮,就要把标志设定FalsecmdSave_Click
      bChangeFlag = False
    --------------------------------------------------------------------------在用户关闭窗口的时候,做最后的检查。在 Form_Unload 加入判断If bChangeFlag Then
       MsgBox "资料被更改,是否保存?"
       :
       :
    End if