2011-12-11 25 views
2

我正在爲使用coolstorage和sqlite作爲數據庫的wp7編寫一個應用程序。如何在wp7上使用coolstorage更改sqlite數據庫?

我選擇的SQLite的原因是因爲它似乎有做架構更新了良好的能力。

然而,在我的測試,我可以運行一個「改變表...」命令,但如果我添加一列,然後嘗試讀取該列中,我得到了列不存在錯誤。

但是,如果我關閉應用程序並再次運行它,該列就在那裏。

我想過嘗試關閉我的連接,但我不知道如何,使用coolstorage做。有沒有辦法?這會起作用嗎?

我對Coolstorage和SQLite都很陌生,所以對我的幫助表示讚賞。

如何在不關閉和重新操作應用程序的情況下更改sqlite模式?

[更新:2011年12月15日] 我們通過確保在查詢受影響的表之前運行模式更新來避免此問題,這可能是正確的做法。

如果有人想出了一個辦法做到運行鍼對一個表的查詢後的架構變化,我仍然有興趣知道。

+0

不使用內置的數據庫中的任何原因?它內置了對升級模式的支持。 –

+0

它看起來像內置的SQL CE數據庫只有有限的能力做架構更新。你可以添加表和列,但你不能放棄任何東西。至少我不知道如何放棄任何東西。 – Zack

+1

嗯,[你是對的](http://msdn.microsoft.com/en-us/library/hh394018(v = VS.92).aspx#BKMK_MigrationMethodologies)。 '在此版本中,無法從現有數據庫中刪除列或表 –

回答

0

sqlite的有將列添加到就地現有的表,但是它已經準備將不會顯示這些更改任何疑問月底的能力。根據我的經驗,如果你再次準備查詢,它就會起作用。或者,您可以關閉並重新打開數據庫。請注意,其他架構更改不直接支持,並會要求你做到以下幾點:

  1. 重命名原始表
  2. 與所需的更改創建新表。
  3. 將數據從舊錶複製到新數據(如適用)。
  4. 刪除原始表格。
相關問題