Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将多个用户的数据存储在一个位置_C#_Data Storage - Fatal编程技术网

C# 将多个用户的数据存储在一个位置

C# 将多个用户的数据存储在一个位置,c#,data-storage,C#,Data Storage,我有一个C#应用程序,用于修改PowerPoint文件。这些文件在我们的网络中,很多人需要使用它们。但在每一个给定的时间,只有一个人参与演示。 我曾经为每个演示文稿在网络中的一个中央序列化xml文件中存储一些元数据。元数据的结构是一个简单的列表,其中每个项都是文件名和其他属性。文件名用于标识每个条目 现在我的程序经常被不同的人使用,他们正在做不同的演示文稿,当他们回家时,我的程序会将元数据保存到文件中。不幸的是,最后一个回家的用户获胜并覆盖其他用户所做的所有更改 那我怎么才能避免呢?显然,我需要

我有一个C#应用程序,用于修改PowerPoint文件。这些文件在我们的网络中,很多人需要使用它们。但在每一个给定的时间,只有一个人参与演示。 我曾经为每个演示文稿在网络中的一个中央序列化xml文件中存储一些元数据。元数据的结构是一个简单的列表,其中每个项都是文件名和其他属性。文件名用于标识每个条目

现在我的程序经常被不同的人使用,他们正在做不同的演示文稿,当他们回家时,我的程序会将元数据保存到文件中。不幸的是,最后一个回家的用户获胜并覆盖其他用户所做的所有更改

那我怎么才能避免呢?显然,我需要一种更好的数据存储技术,它只保存用户所做的更改。但是除了存储在网络上的文件之外,我不能使用任何其他技术(但我不限于xml文件…

为什么不使用数据库?它将所有数据存储在一个文件中(您可以将其存储在网络上),并为您提供了关系数据库的灵活性,您可以在其中使用悲观和/或乐观并发检查等技术。您还可以更轻松地存储每个用户的数据

编辑:它处理如何从c#应用程序使用SQLite的问题

为什么不使用数据库?它将所有数据存储在一个文件中(您可以将其存储在网络上),并为您提供了关系数据库的灵活性,您可以在其中使用悲观和/或乐观并发检查等技术。您还可以更轻松地存储每个用户的数据


EDIT:它处理如何从c#应用程序中使用SQLite的问题

答案不是超级基本吗?使用更好的技术。为每个用户在上存储多个文件或使用XML结构中的子元素。我无法理解这个问题:您希望您的程序做什么?@oxiabox我无法存储每个用户的数据,因为这些数据与用户无关,它们与每个演示相关。我希望避免多个文件,我会在一年内得到一个包含5000个文件的文件夹。然后存储数据以供演示。同样的原则也适用。每年5000个文件还不错。我认为数据库可能是通过.oxiabox的方式,目前这种情况正在发生——但是如果在保存pres2时文件包含pres1的更新版本,那么对pres1的所有更改都将丢失。我可以从磁盘反序列化文件并比较内容,但由于保存的文件间隔很紧(大多数人回家时为17.00),这并不愚蠢,可能会产生“正在使用的文件”错误。答案不是很简单吗?使用更好的技术。为每个用户在上存储多个文件或使用XML结构中的子元素。我无法理解这个问题:您希望您的程序做什么?@oxiabox我无法存储每个用户的数据,因为这些数据与用户无关,它们与每个演示相关。我希望避免多个文件,我会在一年内得到一个包含5000个文件的文件夹。然后存储数据以供演示。同样的原则也适用。每年5000个文件还不错。我认为数据库可能是通过.oxiabox的方式,目前这种情况正在发生——但是如果在保存pres2时文件包含pres1的更新版本,那么对pres1的所有更改都将丢失。我可以从磁盘反序列化文件并比较内容,但由于保存的文件间隔很紧(大多数人回家时为17.00),这并不愚蠢,可能会产生“正在使用的文件”错误。谢谢,这是一个非常好的主意!我排除了数据库的可能性,因为我们的服务器是由另一家公司管理的。谢谢,这是一个非常好的主意!我排除了数据库的可能性,因为我们的服务器是由另一家公司管理的。