2011-11-04 54 views
1

好吧,背景:的Windows Phone 7.1(芒果DEV) - 代碼 - 首先從分隔文本創建SQL CE

我有一個應用程序,它有一個本地只讀參考數據庫(可以稱之爲「包含在源代碼中的「local.sdf」)。現在,用戶將接觸到一個網站(稱爲「http:\ www.websiteImGettingTxtFrom.txt」),這是一個管道分隔的.txt文件的來源,用於更新單獨的本地數據庫(「webdata.sdf」)實體將直接與local.sdf中的實體相對應。理想情況下,如果應用程序在app_launch/app_load /每當用戶按下「更新」按鈕時創建/更新webdata.sdf,這將是最簡單的。因此,如何創建/更新上述的webdata.sdf in-code嚴格來自管道分隔txt(記住這個數據庫將有超過20,000個實體,我相信每個屬性有7個)?

這裏就是我拉管道分隔文本的〔實施例:

|ColumnName1|ColumnName2|ColumnName3|ColumnName4 
|Entity|Value1|Value2|Value3 
|Entity2|Value1|Value2|Value3 
|Entity3|Value1|Value2|Value3 

我知道該怎麼做了大規模的清除,但填充是真正的問題。此外,有沒有一個流程精簡版的方式來做到這一切的背景(防止應用程序崩潰的DB如果應用程序負載時關閉)

感謝, rapterj

回答

0

可以包括webdata.sdf將空表作爲資源,並在啓動時複製到獨立存儲(如果它尚不存在)(由SQL Server Compact Toolbox生成的DataContext爲您提供了可爲您執行此操作的CreateDataIfExists方法)。

對於插入,批量這些在appropiate批次調用的SubmitChanges(你需要做一些測試)

+0

好吧,我得到的CreateDataIfExists一部分,但是讓我們假設一分鐘,我對如何extremmely知識有限來處理SQL CE數據庫,並且完全不知道如何正確「批量」分隔文本到數據庫中(特別是以一種允許我檢查數據庫上次更新的日期的方式,以便如果它在同一天,則不會做大規模的更新(這可能是一個非常耗時的過程,消耗大量的刪除/質量插入))...你有代碼示例嗎? – rapterj