【问题标题】:C# and a Network Share DatabaseC# 和网络共享数据库
【发布时间】:2012-08-29 21:23:11
【问题描述】:

我确定以前有人问过这个问题,但我正在开发一个需要网络共享数据库的应用程序。我没有设置专用 SQL 服务器的选项,所以我唯一的选择是基于文件的数据库。

最初将使用 5-10 个用户,他们主要从数据库中读取数据,并且每小时最多写入几次。

我在这里读到人们建议我远离 Access,但是还有哪些其他选择可以实现我的目标?

【问题讨论】:

  • 我完全同意避免访问,我们不得不每小时设置一次访问数据库的备份,因为每次有人使用它都会损坏。它是一个报告工具,最好留给它。 SQL compact 将是最简单的
  • 继续 - 使用访问权限,当有规律的事情发生时,它总是更有趣 - 你会觉得自己像个侦探,试图把碎片拼凑起来!
  • @BugFinder - SQL Server CE :)
  • @Charleh - 让我发笑,不幸的是 Access 只获得了一票......你的:p
  • @hshah 嗨,hshah!您是否成功地在 5-10 个用户的网络共享上使用 SQL Server Compact 数据库?我有一个非常相似的场景,但我发现的信息暗示 SQL Server Compact 在这种情况下不是一个选项......是这样吗? stackoverflow.com/questions/20229964/…

标签: c# database file networking share


【解决方案1】:

我建议使用SQL Server Compact EditionSQLite

都不需要服务器来运行(它们是基于文件的),并且两者都比 Access 数据库功能更全面、更可靠。

【讨论】:

  • 我是否需要实现文件锁定等以避免数据损坏?如果我的用户群增加到 50 个,性能如何公平?
  • @hshah - 只要您适当地打开/关闭与数据库的连接,您就不必担心文件锁定问题,并且只要事务数为 50 个用户,性能就应该没问题保持在您在帖子中的估计值。
  • 所以如果两个用户同时尝试打开一个连接,他们中的一个会出错吗?我猜在初始化连接之前需要进行某种检查以确保文件可用于写入?
  • @hshah 数据库引擎将处理并发连接。只有当用户尝试进行有冲突的数据更新时才会出现问题。
  • @Prokurors - 那么我会接受这个建议。但请记住,正如我在其他 cmets 中提到的那样,这只是在连接打开时。
猜你喜欢
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 2013-09-05
相关资源
最近更新 更多