我的WinForms C#/ .NET應用程序需要一個表/網格控件來向最終用戶顯示記錄。記錄很簡單,只包含兩個字段,一個字符串和一個日期/時間字段。我需要堅持數據,我想知道最有效的控制和存儲後端將使用什麼。數據不重要(即 - 不是健康或財務記錄,或任何需要廣泛安全或任何加密的敏感內容)。C#中持久表/網格的正確解決方案不需要完整的數據庫解決方案?
迄今爲止發現的一種解決方案是DataGrid控件與SQL Server Compact Edition結合使用。我瞭解從本教程此解決方案:
http://www.dotnetperls.com/datagridview-tutorial
看來,雖然這可能是矯枉過正了我的申請。另外,我很擔心安裝SQL Server CE的複雜性,特別是當它安裝過程中,管理員對用戶帳戶的權限問題:
http://msdn.microsoft.com/en-us/library/aa983326(v=vs.80).aspx
有一個表或網格控制內置文件加載/保存功能,它使用簡單的磁盤文件作爲存儲方法,可能是逗號分隔的ASCII文件?我想要一些我仍然可以使用SQL(通過LINQ)進行交互的東西。另外,我希望這可以透明地完成。也就是說,如果我想稍後升級到SQL數據庫引擎解決方案,那麼與我的數據接口的代碼將不會更改(當然也可能是數據庫打開/創建代碼除外)。
還是我還不如干脆咬咬牙,與SQL Server CE或也許SQLite的打算:
Good embedded database solution (like SQLite) for .Net
如果您有關於安裝問題和易用性的任何警告或軼事,他們會讚賞。
謝謝。你知道一個簡明的教程,演示你所建議的技術(一個帶有Object數據源的網格控件)嗎?我發現到目前爲止:http://tech.pro/tutorial/776/csharp-tutorial-binding-a-datagridview-to-a-collection – 2013-02-18 20:11:20
該教程顯示了你需要知道的一切。 Object,PropertyChanged,BindingList等等。你可以聲明自定義列表實現並自己實現IBindingList接口,雖然這有點POTA! (在那裏,這樣做,不想再次這樣做)。查看一下XmlSerializer的基本實現,這應該是其他基礎知識來完成某些工作。 – Nevyn 2013-02-18 20:40:23
比基礎知識稍微複雜一些,但它也包含這些內容。這個例子着重於屬性,它可以讓你看到你的對象生成的xml究竟是什麼樣的。在網絡之間來回傳遞(SOAP和其他類似的協議)時很方便。 http://www.codeproject.com/Articles/14064/Using-the-XmlSerializer-Attributes – Nevyn 2013-02-18 20:42:26