C# 如何在不使用数据服务器的情况下在客户端计算机上存储数据?
如何在不使用数据服务器的情况下在客户端计算机上存储数据 我有一个C#Windows应用程序,想在用户的计算机上存储一些数据。我不想使用任何类型的数据服务器,如SQL server或Access。用户无法读取此数据,此数据的结构类似于带行的表 存储数据的最佳方式是什么?我怎么处理这个案子 请注意,我想编辑和更新此数据C# 如何在不使用数据服务器的情况下在客户端计算机上存储数据?,c#,C#,如何在不使用数据服务器的情况下在客户端计算机上存储数据 我有一个C#Windows应用程序,想在用户的计算机上存储一些数据。我不想使用任何类型的数据服务器,如SQL server或Access。用户无法读取此数据,此数据的结构类似于带行的表 存储数据的最佳方式是什么?我怎么处理这个案子 请注意,我想编辑和更新此数据 我所有的数据类型都是字符串,我不想只存储在内存中,因为在系统重新启动后,数据必须仍然可用,我的应用程序才能工作。如果不想使用DB,可以使用XML,这是一种非常标准的方法 PS:如果您
我所有的数据类型都是字符串,我不想只存储在内存中,因为在系统重新启动后,数据必须仍然可用,我的应用程序才能工作。如果不想使用DB,可以使用XML,这是一种非常标准的方法 PS:如果您希望许多用户使用相同的XML,那么在每次操作时也会锁定文件,这样可以避免并发读/写错误
一个显著的优点是,您可以使用LinqToXML执行查询:)您可以使用SQL Server Compact,它是文件中的一个DB 或 如果愿意的话,为了清晰起见,您可以对其进行编辑 有两个问题:
由于它是windows应用程序,您可以创建安装该应用程序的文件夹,创建MS excel文件并将数据保存在该excel文件中。我建议使用SQL Server Compact,它是一种轻量级的、基于文件的数据库版本。 用户无需安装SQL Server即可使用此选项 这将是我的首选选项,因为它允许您使用LINQ使用Entity Framework等技术非常轻松地处理和查询文件中的数据。事实上,您可以使用POCO来表示您的应用程序实体,实体框架将负责将信息读写到数据库中 如果您使用的是实体框架,则可以使用配置文件自动创建数据库。第一次使用任何实体时,将自动为您生成数据库文件(可以进行配置)
我建议使用系统上的一个特殊文件夹,使其对应用程序的用户透明
还要注意的是,您可以拥有任何您想要的扩展名(DBName.abc而不是DBName.sdf),这样文件就可以与您的应用程序相关联
使用此方法的另一个优点是,您不必一次性将整个文件加载到内存中(即,您可以查询数据并返回数据的子集),如果您只是将对象序列化到文件中,则无法执行此操作。数据是否应该共享?每个用户都应该有自己的数据集吗?用户应该能够直接访问数据并对其进行更改,还是只能通过应用程序进行更改?这不是共享,每个用户都有自己的数据集,如果只能通过应用程序进行更改我想销售我的程序,我的客户可能很难设置sqlserver@motevallizadeh-你需要开始阅读了。没有使用SQL Server Compact安装。您必须在来宾计算机上安装SQL Server express edition,直到您可以使用它的SQL Compact不是SQL express!这是两个独立的产品。你的答案的其余部分怎么了?不管怎样,如果数据量不是非常大,请使用xml。如果用户没有安装excel,我的应用程序就不能工作,我也不想在用户计算机上安装任何额外的应用程序。如果我正确阅读了他的问题,他说它不应该是人类可读的。Xml非常易于理解,可能不符合他的要求。如果您愿意,我想可以对其进行加密。我想我的主要观点是将其存储在%APPDATA%目录中,但实际上%USERPROFILE%可能更合适。
<configuration>
<connectionStrings>
<add name="DatabaseContext"
providerName="System.Data.SqlServerCe.4.0"
connectionString="Data Source=C:\Paths\To\Location\DBName.abc"/>
</connectionStrings>
</configuration>