2009-06-24 79 views
0

我有一個將數據記錄到SQLite數據庫的數據記錄應用程序(c#/ .net)。該數據庫在應用程序運行時不斷寫入。一旦SQLite數據庫的大小達到預定義的大小,數據庫也可以被歸檔並創建一個新的數據庫。將客戶端數據庫與服務器數據庫同步的最佳方法

我正在編寫一個用於報告數據的Web應用程序。我的網頁設置是使用SQL Server的c#/ .Net。客戶將能夠從他們的應用程序實例中查看他們自己收集的數據。

出於測試目的,要上傳數據以測試我寫了一個粗糙且髒的應用程序,它基本上從SQLite數據庫讀取數據,然後使用SQL將數據注入到SQL Server中 - 我運行應用程序一次來填充SQL Server數據庫在線。

我的應用程序是用c#編寫的,並且是模塊化的,所以我可以添加一個定期檢查SQLite數據庫然後將新數據批量傳輸到我的SQL Server的進程。

我的問題是,如果我想連續同步客戶端SQLLite數據庫與我的服務器,因爲應用程序是數據記錄,那麼最好的方法是什麼?

我有什麼技術/策略應該考慮在這裏僱用?任何推薦的技術?

回答

0

你可以看看同步框架。您想要同步的架構有多複雜?&僅僅是單向還是數據需要重新啓動?

作爲一個簡單的解決方案,我會考慮以某種分隔格式導出數據,然後使用bcp/BULK INSERT將其引入中央服務器。

+0

感謝這一點,數據傳輸將是一種方式。我將使用像bcp這樣的開始,並將同步框架作爲更長期的解決方案。 – Mattl 2009-06-26 11:16:03

0

可能需要調查日誌傳送的概念

+0

不知道這是feasable因爲我從SQLite數據庫工作到SQL Server,我也想不斷更新SQL服務器端 - 不是實時的,但也許每隔幾分鐘。 深思雖然,它讓我開始思考如何解決另一個問題,我有。 – Mattl 2009-06-25 09:59:26

1

想到幾個選項。您可以將時間戳添加到要從中複製的每個表,然後選擇上次更新後寫入的行。如果你存檔數據庫並以空的數據庫開始,這很快並且可以工作。

您也可以刊物您的更新爲每個表成描述的變化,存儲到被視爲新的隊列表中的XML字符串。

0

在Github上還有一個開源項目也可在Nuget上找到。它被稱爲SyncWinR,它實現了Sync Framework Toolkit以啓用與WinRT或Windows Phone 8和SQLite的同步。 您可以從https://github.com/Mimetis/SyncWinRT訪問該項目。

相關問題