将客户端数据库与服务器数据库同步的最佳方法

时间:2009-06-24 12:36:07

标签: c# sql-server sqlite synchronization

我有一个数据记录应用程序(c#/ .net),它将数据记录到SQLite数据库。应用程序运行时,将不断编写此数据库。一旦SQLite数据库的大小达到预定义的大小,也可以存档数据库并创建新的数据库。

我正在编写一个用于报告数据的Web应用程序。我的网站设置是带有SQL Server的c#/ .Net。客户将能够从他们的应用程序实例中看到他们自己在线收集的数据。

出于测试目的,要上传数据进行测试,我编写了一个粗糙而脏的应用程序,它基本上从SQLite DB中读取,然后使用SQL将数据注入SQL Server - 我运行应用程序一次以填充SQL Server DB在线。

我的应用程序是用c#编写的,并且是模块化的,因此我可以添加一个定期检查SQLite DB的进程,然后批量传输新数据到我的SQL Server。

我的问题是,如果我想继续将客户端SQLLite数据库与我的服务器同步,因为应用程序正在进行数据记录,最好的解决方法是什么?

我应该考虑采用何种技术/策略?任何推荐的技术?

4 个答案:

答案 0 :(得分:1)

我想到了几种选择。您可以为要从中复制的每个表添加时间戳,然后选择上次更新后写入的行。这很快,如果您存档数据库并从空数据库开始,它将起作用。

您还可以将每个表的更新记录到XML字符串中,该字符串描述更改并将其存储到被视为队列的新表中。

答案 1 :(得分:0)

可能想调查日志传送的概念

答案 2 :(得分:0)

您可以查看同步框架。您希望同步的架构有多复杂?它只是单向还是数据需要重新出现?

作为一个简单的解决方案,我会考虑以某种分隔格式导出数据,然后使用bcp / BULK INSERT将其导入中央服务器。

答案 3 :(得分:0)

在Nuget上也有一个Github上的开源项目。它被称为SyncWinR,它实现Sync Framework Toolkit以启用与WinRT或Windows Phone 8和SQLite的同步。 您可以从https://github.com/Mimetis/SyncWinRT访问该项目。