C# 未安装服务器上的数据库?

C# 未安装服务器上的数据库?,c#,.net,sql,networking,C#,.net,Sql,Networking,现在我有一个客户,他在几家公司工作。他正在处理他们的数据,但不允许直接访问他们的数据库。我们考虑使用SQLite或SQLCE,并将原始数据库的副本/部分存储为网络共享上的文件。现在的问题是SQLCE不支持它,SQLite强烈建议不要这样做 首先,性能是一个巨大的问题,因为我们的客户处理大量数据(高达几gb)。第二个问题是,当数据库存储在网络共享上时,SQLite在并发使用数据库方面存在问题(实际上,文件锁定的底层操作系统功能就是问题所在)。我在这个主题上做了很多研究,很多人说数据库的更新只是时间

现在我有一个客户,他在几家公司工作。他正在处理他们的数据,但不允许直接访问他们的数据库。我们考虑使用SQLite或SQLCE,并将原始数据库的副本/部分存储为网络共享上的文件。现在的问题是SQLCE不支持它,SQLite强烈建议不要这样做

首先,性能是一个巨大的问题,因为我们的客户处理大量数据(高达几gb)。第二个问题是,当数据库存储在网络共享上时,SQLite在并发使用数据库方面存在问题(实际上,文件锁定的底层操作系统功能就是问题所在)。我在这个主题上做了很多研究,很多人说数据库的更新只是时间问题

有没有人知道更好的解决方案或者让我使用SQLite的变通方法?它不需要是基于文件的数据库,只要不需要在服务器上安装或运行任何内容

谢谢,大卫。

你可以试试。它很容易配置,而且相当可靠。它还支持服务器导出/导入选项

如果您的客户能够以某种方式获得导出的数据库,那么所有这些都是有意义的

你可以试试。它很容易配置,而且相当可靠。它还支持服务器导出/导入选项


如果您的客户能够以某种方式获得导出的数据库,那么所有这些都是有意义的

如果要将数据存储在网络共享上,并让并发用户访问数据,则需要一个能够处理并发访问的数据库。如果使用并发访问,MS访问将很快消失,SQL Lite也将如此

SQLServerExpress是免费的,运行良好。Maxim建议的PostgreSQL是一个开源的全功能数据库,它可以很好地完成这项工作,但可能有些过头了


你也可以看看Redis。。。快速轻量级内存中没有sql数据库,也有能力持久化到文件

如果要将数据存储在网络共享上,并让并发用户访问数据,则需要一个能够处理并发访问的数据库。如果使用并发访问,MS访问将很快消失,SQL Lite也将如此

SQLServerExpress是免费的,运行良好。Maxim建议的PostgreSQL是一个开源的全功能数据库,它可以很好地完成这项工作,但可能有些过头了


你也可以看看Redis。。。快速轻量级内存中没有sql数据库,也有能力持久化到文件

“他正在处理他们的数据,但不允许直接访问他们的数据库”。我想知道他们被允许使用编程语言编写程序,甚至使用计算机执行计算。我不明白,如果你不能安装任何东西,你肯定可以使用SQL CE,它嵌入并在应用程序的同一进程中运行。数据库需要在网络共享中是什么?是否已经有其他应用程序在使用它。如果您需要应用程序的多个实例来访问在某个地方共享的同一数据,而您确实需要DB Server,那么在这种情况下,嵌入式方法不再适用。David,如果他们需要以共享方式工作,请告诉他们应该安装SQL Server(Express Edition是免费的)或任何其他数据库服务器。@zerkms此处相同。。。我也很好奇。。。如果数据安全是一个问题,那么你可以有很多选择。。。但是你永远不能在文件中存储数据,因为你必须连接到数据库。。。我不认为有其他可能。那么,您的客户如何访问这些其他人的数据呢?他们是否向他提供出口?CSV文件?或者这是你真正的问题?一旦获得数据,他将如何处理这些数据?“他正在处理他们的数据,但不允许直接访问他们的数据库”。我想知道他们被允许使用编程语言编写程序,甚至使用计算机执行计算。我不明白,如果你不能安装任何东西,你肯定可以使用SQL CE,它嵌入并在应用程序的同一进程中运行。数据库需要在网络共享中是什么?是否已经有其他应用程序在使用它。如果您需要应用程序的多个实例来访问在某个地方共享的同一数据,而您确实需要DB Server,那么在这种情况下,嵌入式方法不再适用。David,如果他们需要以共享方式工作,请告诉他们应该安装SQL Server(Express Edition是免费的)或任何其他数据库服务器。@zerkms此处相同。。。我也很好奇。。。如果数据安全是一个问题,那么你可以有很多选择。。。但是你永远不能在文件中存储数据,因为你必须连接到数据库。。。我不认为有其他可能。那么,您的客户如何访问这些其他人的数据呢?他们是否向他提供出口?CSV文件?或者这是你真正的问题?一旦获得数据,他将如何处理这些数据?我们考虑过SQL Server Express,但正如我所说,我们的客户不允许在其客户的服务器上安装任何软件。他只得到一份副本或一部分数据库,不能离开服务器。如果你不能在他们的服务器上安装任何东西,我想你唯一可以使用的可能是网络共享上的xml或json文件。您可能会遇到文件锁定问题,因此请小心对读取的文件进行编码。这是生产中的情况还是仅仅是一个开发问题?这是生产中的情况。我们考虑过SQL Server Express,但正如我所说,我们的客户不允许在其客户的服务器上安装任何软件。他只得到一份副本或一部分数据库,不能离开服务器。如果你不能在他们的服务器上安装任何东西,我想你唯一可以使用的可能是网络共享上的xml或json文件。您可能会遇到文件锁定问题,因此请小心编码