如何将C#项目与服务器(而非本地网络)上的Access数据库连接起来进行编辑和查看?

如何将C#项目与服务器(而非本地网络)上的Access数据库连接起来进行编辑和查看?,c#,ms-access,server,C#,Ms Access,Server,我有一些内置Access的数据库,我希望在未连接到本地服务器\网络时能够查看和编辑它们 如何使用C访问以查看和编辑放置在没有VPN或SMB的服务器上的access数据库(这意味着创建本地网络)。是否可以在服务器上实时编辑它 这需要不止一个人访问,因此我还希望,例如,如果一个人已经在编辑一个表,就阻止它(这里还有FTP协议——在PC上下载和编辑,然后重新加载) 我希望我足够清楚,提供了足够的信息,谢谢所有的帮助!!请告诉我:)我开发了一个简单的Python web服务器,通过HTTP与Access

我有一些内置Access的数据库,我希望在未连接到本地服务器\网络时能够查看和编辑它们

如何使用C访问以查看和编辑放置在没有VPN或SMB的服务器上的access数据库(这意味着创建本地网络)。是否可以在服务器上实时编辑它

这需要不止一个人访问,因此我还希望,例如,如果一个人已经在编辑一个表,就阻止它(这里还有FTP协议——在PC上下载和编辑,然后重新加载)


我希望我足够清楚,提供了足够的信息,谢谢所有的帮助!!请告诉我:)

我开发了一个简单的Python web服务器,通过HTTP与Access DB一起工作:


对于您的案例,这可能不是一个理想的解决方案,但可能是一个很好的起点。

我们首先要问最终用户将如何运行和使用C#程序

桌面:用户需要与服务器建立网络连接。(最有可能是VPN)

基于Web:用户需要与Web服务器建立网络连接。这也可以是VPN,也可以是面向公众的web服务器。为了安全起见,这将需要登录

如果用户没有网络连接,那么这是oracle、MySQL、SQL server还是Access都无关紧要。事实上,如果这是基于web的,那么用户需要能够连接到该web服务器

因此,如果没有与数据所在的服务器或计算机的某种网络连接,并且您取消了VPN,那么您的选择就会受到限制

您可以构建网站并将其放置在服务器上。然而,如果用户没有任何类型的网络连接,即使是在一个网站的情况下,那么我看不出你甚至可以建议使用FTP,更不用说任何其他类型的连接

这需要不止一个人访问

好的,你需要多用户。然而,在sql server上锁定整个表以只允许一个用户实际上是相当困难的

但是,我们可以让您希望在给定的表中同时有一个用户。(但事实上,Access和web站点都允许多个用户,甚至可以编辑同一个表)

总而言之? 然后,这就提出了一个最明显的解决方案:运行一个web服务器,这将允许任何用户连接到web站点,然后web站点就可以读取/谈论/使用驻留在该服务器上的access数据库。这也意味着你不需要安装任何客户端软件

FTP不是一个实用的解决方案,因为它只适用于整个文件

因此,用户将需要一些方法来连接到某个服务器。在这种情况下,然后将您的C#应用程序编写为基于web的,因此不需要客户端软件,与该服务器上的access文件交互的唯一软件将是web站点

因此,在该服务器上运行网站似乎是最好的选择。 因此,我们正朝着web解决方案迈进


因此,软件将保留并100%在服务器端运行,因此除了浏览器之外,不需要客户端软件。

您的设计很糟糕。访问并不适用于多用户环境。您可以将文件放在共享驱动器上,以便folder.filename可以访问该文件(并使属性共享),但文件通常会被锁定。如果您只需要一个用户访问权限,那么就构建一个服务,这样一次只有一个人可以下载文件。我使用access就像使用数据库和C#来构建界面一样。还有别的办法吗?例如(idk,如果可能的话):我可以用我当前的内置访问权限创建一个SQL server并用C#编辑它吗?关于FTP协议,您认为这是一个公平的解决方案吗?理想的解决方案是使用像SQL Server这样的数据库,该数据库设计用于处理包含锁的多个用户,以防止多个用户同时更改对象。使用BulkCopy,您可以将数据从Access移动到SQL Server。请看:我没有说明C#程序是基于网络还是桌面,因为我不知道哪个选项更好,所以我决定把这部分留给你——专业人士。关于VPN,问题是我不想让用户为所有这些设置而烦恼(除非有一些选项可以通过我不知道的C代码只在软件上应用它)。而且所有的用户肯定都有互联网连接。谢谢你的帮助!你真的付出了很多努力,我很感激!那么好吧,这确实表明基于web的应用程序将是最好的方法。对于这种类型的系统来说,访问不是最好的,但是如果用户数只表明访问了5-15个用户,那么它就可以相当好地工作。既然你现在清楚你是在征求意见?我将编辑我的帖子以消除任何居高临下的语气。请参阅我的更新和编辑-我更愿意根据您的反馈建议网络之路。非常感谢您的时间和宝贵的建议!你帮了我很多,谢谢!我现在想到另一个问题。我在Access上建立了整个数据库和整个界面,现在我需要让它在线工作。无论如何,是否需要构建与它们都交互的东西,这样我就不需要用C#再次构建整个接口,或许可以节省一些工作。(我希望我说得够清楚,谢谢!)谢谢!这似乎是一种解决方案,我只想保持简单,因此我不想涉及python和C#和SQL(Access)以外的其他语言。