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

时间:2011-10-13 01:43:23

标签: c# ado.net

向所有成员致以花时间阅读这个问题。

我正准备一个测验系统的应用程序,该系统将从数据库中随机提出问题并使用ado.net将它们放入界面(c#)。

我的问题是我希望程序是可移植的,即您不必在所有系统上完全安装sql server我将运行我的代码(如果我是用户sql server驱动程序)。

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

4 个答案:

答案 0 :(得分:4)

您可以选择Sql CE(精简版)数据库。

来自Scott Guthrie的博客:

  

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

答案 1 :(得分:1)

不要使用SQL Server。

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

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

答案 2 :(得分:0)

我喜欢AVD的答案,可能就是这样,但使用linq to XML将是一种替代便携性的好方法。

答案 3 :(得分:0)

将您的DataSet序列化为二进制文件。

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