Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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#_Database_Desktop Application - Fatal编程技术网

C# 什么';在不使用数据库的情况下,存储/检索桌面数据的最佳方式是什么?

C# 什么';在不使用数据库的情况下,存储/检索桌面数据的最佳方式是什么?,c#,database,desktop-application,C#,Database,Desktop Application,我有一个关于为桌面应用程序存储数据的问题, 如果部署的应用程序没有MS SQL数据库, 如何方便检索/存储数据。 我知道我也可以将数据对象序列化为文件(如XML文件),还有其他更有效的方法吗?您可以研究一下。作为嵌入式数据库做得很好。甚至还有可用的。在回答您的问题时,您会提出各种各样的问题。为了回答这个问题,我将假设: 1) 需要存储的数据量有限。 2) 内置功能(无第三方或数据库要求) 最方便的、内置的(基本.NET安装固有的)是一个数据集,特别是一个类型化的数据集 您可以向数据集添加无限量的

我有一个关于为桌面应用程序存储数据的问题, 如果部署的应用程序没有MS SQL数据库, 如何方便检索/存储数据。
我知道我也可以将数据对象序列化为文件(如XML文件),还有其他更有效的方法吗?

您可以研究一下。

作为嵌入式数据库做得很好。甚至还有可用的。

在回答您的问题时,您会提出各种各样的问题。为了回答这个问题,我将假设:

1) 需要存储的数据量有限。 2) 内置功能(无第三方或数据库要求)

最方便的、内置的(基本.NET安装固有的)是一个数据集,特别是一个类型化的数据集


您可以向数据集添加无限量的表和数据(受可用内存限制),并可以轻松地从磁盘保存和加载数据。DataSet可以轻松地序列化为绑定到模式的Xml数据。

我认为您不应该问哪种方式是“最好的”,但哪种方式对您来说是最好的

当你说你不能有一个数据库,我想你的意思是应用程序需要是独立的,但可以使用一个本地数据库文件?如果是这样,并且您估计将需要大量的数据存储,那么您可能会发现您希望使用许多紧凑型本地数据库产品中的一种。例如,我想到了SQLite和InnoDB

如果只存储少量数据,那么XML或简单的二进制文件可能更适合您,因为它会减少应用程序占用空间,并消除对第三方产品的依赖。我们有时(我强调很少!)仍然使用经典的INI文件,因为它在代码中得到了很好的支持,并且产生了非常紧凑的代码


至于效率和有效性,这一切都取决于您决定如何实施数据访问。诚然,您使用的数据库类型会产生影响,但您还必须支持您实现的任何类型,因此,研究数据库API是如何定义和记录的,是否有活动社区提供支持等都是值得的。。。,选择一个你觉得最舒服的工作。

< P>如果你在Windows上,需要以简单的方式查询数据,考虑内置的Enter数据库引擎()。CodePlex有一个.NET包装器,其中包含一个PersistentDictionary类(),该类的工作方式类似于.NET字典,但由磁盘上的数据库文件支持。

@Michael,是的,数据量有限,但如果可能的话,我想绕过序列化/XML路径。我想知道您想将其保存为二进制文件吗?我想我是想了解您希望如何在文件系统上持久化数据。