2009-09-19 78 views
7

只是構建我的第一個WinForms應用程序。WinForms - 這是保持一些數據最簡單的方法嗎?

問題 - 在使用應用程序之間保存某些數據的最簡單/最好的方法是什麼(例如URL列表中的狀態爲&日期/時間)?我沒有看到任何需要數據庫。

例如 *只是存儲到文本文件最簡單? *或者在DotNet中一樣容易地存儲XML文件 * Windows註冊表如何?通常要避免這種情況?它的使用是否兼容所有版本,包括Windows 7 *數據庫 - 可能過度殺傷這裏 *可能是一個廣泛使用的庫?

感謝

回答

4

存儲到XML是.NET中很容易的,特別是如果你真的只是存儲URL和時間戳。您可以創建一個自定義類來保存數據...在運行時,在您的應用程序中操作該類的實例。

當它的時間來保存,序列化對象(或多個)XML ......當應用程序需要在以後還原數據,只是反序列化。 MSDN有一個簡單的walkthrough

值得一提的,因爲金廷一樣,就是使用SQL Server精簡或其他一些輕量級的數據庫也可能是一個好主意。 XML的快速和簡單 - 但是如果你需要人們共享數據,或者你需要比簡單的序列化更靈活的任何東西,你最好用數據庫。

+0

BY THE WAY - SQL Server Compact需要用戶單獨安裝嗎?或者,您是否可以將其部署作爲應用程序一次性部署的一部分進行無縫包裝? – Greg 2009-10-06 05:33:11

5

如果你真的需要重持久性和出應用存儲,你可以使用SQLite或SQL Server精簡(均爲獨立的),但是你的情況,我認爲讀/在公共應用數據寫入到一個XML文件文件夾可以滿足您的需求,並且非常容易。

0

編輯,因爲我的第一篇文章是明確的泥在數據庫中,如果用戶共享數據

就個人而言,我喜歡存儲數據。

對於非共享的,單個用戶數據時,以下選項都是很容易的。

如果您的數據存儲在數據集內,我會建議使用DataSet.WriteXml和DataSet.ReadXml用於本地存儲。

否則,一個純文本文件將是德最容易,你認爲這樣簡單的事情。 但是,如果數據將變得更加複雜,那麼編寫一個Xml文檔將是最合適的。

你也可以看看連載:

http://msdn.microsoft.com/en-us/library/7ay27kt9(VS.85).aspx

8

看看你的項目(在解決方案資源管理器>屬性>設置選項卡上單擊鼠標右鍵項目)的設置,您可以定義一個不少的情況是整個程序的用途堅持爲每一個用戶變量,如用戶名,上次更新時間,代理服務器,類似的東西。這些設置本身被序列化爲XML,並位於每個用戶的「應用程序設置」文件夾中,但您也可以指定默認或應用程序特定的設置。

然後,您可以使用的設置是這樣的:

MyNamespace.Properties.Settings.Default.MySetting 

更多關於設置文件的信息,可以發現@ MSDNthe Code Project

這是偉大的,如果你只需要存儲會話之間的幾個變量。如果您需要存儲大量數據,請查看其他答案中建議的數據庫選項之一,或者查看serialization

0

您應該檢查出db4o。這個用於.NET和Java對象的輕量級開放源代碼對象數據庫當您僅僅需要簡單的持久性時非常有用。它比文本文件更能查詢,而不像RDBMS那樣繁重。它作爲一個庫包含在內,並保存到一個文件中,所以沒有進程外調用。

它可以通過引用db4o庫添加到您的項目中(下載here)。你給它一個你想要堅持對象的文件路徑,並處理其餘的。然後您可以創建類來封裝您的信息,並通過db4o簡單地將它們的實例保存到文件中。稍後您可以通過一個非常簡單的查詢界面詢問他們。

+0

非常感謝。 Db4o是該類別中使用最廣泛/最流行的選擇嗎? – Greg 2009-09-22 10:44:55

+0

如果按類別引用C#/ Java對象數據庫,那麼我相信是的。但是,如果要將小型基本數據從一個會話存儲到另一個會話,則使用設置,自定義ConfigurationSection或其他XML文件的應用最廣泛。 如果您發現需要更多的數據庫功能,但不想管理RDBMS,則需要查看對象數據庫。 – 2009-09-22 13:08:37

+0

db4o似乎需要許可證,如果用於商業目的似乎?網站似乎建議您需要詢問報價(沒有提及數字)... – Greg 2009-10-03 11:25:02

相關問題