数据库可移植和离线c#wpf

时间:2018-04-03 21:58:37

标签: c# sql database wpf

我正在制作一个WPF计划。该程序有一个数据库和数据集。该软件在我制作该程序的计算机上运行良好。今天我在另一台PC上测试了该软件。但它无法正常工作,因为它无法找到SQL服务器。

这是一个问题。我认为它是本地的,所以我可以在任何地方使用它,但事实并非如此。

我想要的是一个可移植的数据库,因此可以在每台计算机上使用,并且它可以脱机工作。我不知道从哪里开始,希望有人能给我一些提示

2 个答案:

答案 0 :(得分:1)

您可以使用SQL Server LocalDB(以前称为CE - Compact Edition)复制MDF文件。

SQLite也是一个不错的选择。这就是它的目的。可以在主页here或Nuget here上找到图书馆。

MDF选项的连接字符串如下所示:

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname; Trusted_Connection=Yes;

可在此处找到更多连接字符串:

答案 1 :(得分:0)

要考虑的另一个选择是根本不使用数据库。 对文件进行序列化和反序列化对象通常比任何数据库选项都快。

序列化最适合于您的数据不是非常动态或者您正在保存多个相对离散的块。 我刚刚将一个应用程序从win ce转换为序列化。结果显着加快了。 比我预期的更多的差异。

当然,您可以使用linq to xml来查询过滤器排序等。

您可以将其与ms mq等消息队列混合使用,并将捕获的数据的动态部分保留在队列中的磁盘上。 考虑在笔记本电脑上偶尔连接应用程序的推销员。 他们可以将相当静态的数据(如产品选项和成本)加载为xml。在应用程序中反序列化,以便他们可以将引号放在一起。 然后他们需要坚持报价。 你可以将每个报价序列化为一个单独的文件,然后就可以了。 或者您可以使用消息队列来保留它们。 有一个Windows服务,寻找笔记本电脑连接到无线网络时。 连接后,它会从队列中获取每个引号,并通过调用Web服务将它们发送到总部。