C# c和ado.net应用程序中的可移植性问题

C# c和ado.net应用程序中的可移植性问题,c#,ado.net,C#,Ado.net,祝贺所有成员抽出时间阅读此问题 我正在准备一个测验系统的应用程序,该系统将从数据库中随机抽取问题,并使用ado.net将它们放入interfacec 我的问题是,我希望程序是可移植的,也就是说,你不必在所有系统上完全安装sql server。如果我使用sql server驱动程序,我将运行我的代码 这个问题的解决方案是什么 不要使用SQL Server 您可以使用这样的数据库,它可以通过ADO.NET使用,并与应用程序一起分发,而无需单独安装数据库 请注意,这种方法可能不足以满足您的实际数据库需

祝贺所有成员抽出时间阅读此问题

我正在准备一个测验系统的应用程序,该系统将从数据库中随机抽取问题,并使用ado.net将它们放入interfacec

我的问题是,我希望程序是可移植的,也就是说,你不必在所有系统上完全安装sql server。如果我使用sql server驱动程序,我将运行我的代码

这个问题的解决方案是什么

不要使用SQL Server

您可以使用这样的数据库,它可以通过ADO.NET使用,并与应用程序一起分发,而无需单独安装数据库

请注意,这种方法可能不足以满足您的实际数据库需求。

您可以选择Compact数据库

博客地址:

SQL CE不要求您运行安装程序或安装数据库 服务器,以便使用它。您可以简单地复制SQL CE二进制文件 进入ASP.NET应用程序的\bin目录,然后进入web应用程序 应用程序可以将其用作数据库引擎。无设置或额外设置 它需要安全权限才能运行。你不需要 在计算机上拥有管理员帐户。复制你的网页 应用程序安装到任何服务器上,它都可以工作。即使是在中国,情况也是如此 在web托管环境中运行的中等信任应用程序


我喜欢AVD的答案,这可能是一个不错的选择,但是使用linq to XML将是一个很好的可移植性选择。

将数据集序列化为二进制文件

DataSet ds = GetData();
ds.RemotingFormat = SerializationFormat.Binary;
BinaryFormatter bin = new BinaryFormatter();
bin.Serialize(stream, ds);