【问题标题】:Periodic updates to Access DB in C# over VPN通过 VPN 定期更新 C# 中的 Access DB
【发布时间】:2013-12-28 19:51:12
【问题描述】:

我知道这可能被认为是一个通用问题,但老实说,我什至不知道从哪里开始。我已经尝试搜索,但没有找到任何适合该应用程序的结果。

我正在尝试为 Access 2010 数据库开发一个前端,允许用户添加/修改记录。一些用户使用 VPN 连接到数据库,而我们当前使用的 Access 2010 导航表单模型非常慢,无论连接速度如何。我已经验证,我们可以通过 VPN 访问数据库,没有特权问题或安全问题,但即使通过 OleDb 引擎,数据访问也会有很大的延迟。

我想做的是能够在后台进程中发送/接收更新,比如每 5-10 分钟一次,以便最终用户能够根据需要进行更新,并拥有在用户真正意识到延迟的情况下编写的更改。只需使用后台工作人员就足够了,还是有更好的方法通过连接发送更新“数据包”?

再一次,我知道这不是特定于代码的,但我以前从未使用过 C# 和 DB 更新,所以我边走边学。我发现的几乎所有结果都处理了 OleDb 以外的引擎,例如 SQL,但我们被锁定使用 Access(一个 accdb 文件),因为我们没有任何其他数据库引擎可供我们使用。我感谢任何和所有的帮助,无论它以什么形式出现。

这是一个足够新的项目,到目前为止,我为此开发的唯一代码包括初始化与数据库的连接以验证它是否可行。

【问题讨论】:

  • 如果在工作进程中有挂起更新时连接崩溃会发生什么? (这是一个 VPN,人们带着笔记本电脑四处走动,这很容易发生。)
  • 您所描述的内容当然是可能的,并且可以说是在 GUI 中进行数据库访问的正确方法。但这并不意味着它不会使您的架构变得更加复杂。例如。我可以立即想到的未决更新问题的解决方案是使用某种后端服务,该服务将使用某种希望可靠的方式保留未处理的事务并稍后处理它们,例如消息队列,它已经将其从“边走边学”任务。
  • (我的直觉是,摆脱 Access 以支持实际上为有效处理并发用户而构建的东西比尝试通过延迟写入 Access 文件来消除错误更容易。)
  • 至于未决的更新,这并不是真正的问题,因为我们有 2 个人在在家工作时经常使用 VPN,另外 2 个人每天都在办公室。我也相当了解 C#,这是我相对较新的数据库方面。而且我很想完全放弃 Access,但我实际上并不是我公司的 IT,这是一种“不为人知”的情况......这不是不允许的,我们的 IT 只是倾向于相当领土。 :)
  • 你所说的后端服务是指backgroup进程(即C# Worker进程),还是类似web service的东西?

标签: c# ms-access ms-access-2010 vpn


【解决方案1】:

MS Access 并非设计为并发的。当您在远程计算机上打开访问数据库时,您还将整个数据库下载到客户端计算机内存,这就是为什么文件越大越慢的原因。如果您希望使其并发使用 MS SQL Express 并将其链接到您的 MS Access应用。这样会更快更好。

除了免费之外,如果您需要,可以升级。

【讨论】:

  • -1 虽然我同意对于慢速 WAN/VPN 连接,使用 SQL Server 后端可能比使用 Access 后端更好,但语句 "MS Access 不是设计为并发的。”“当您在远程计算机上打开访问数据库时,您还将整个数据库下载到客户端计算机内存” 显然都是错误的。
猜你喜欢
  • 2017-07-21
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-21
  • 2022-01-06
  • 1970-01-01
相关资源
最近更新 更多