我开发了一个WinForm
c#应用程序,现在添加一个恢复选项,如果它意外关闭等等,一切都可以在新的运行中恢复。
我设法恢复几乎所有东西(list,Int,Strings等......)
我面临的唯一问题是恢复DataTable
。在运行期间,我的应用程序记录会添加到此DataTable
,最后用户可以将其导出到csv。
我尝试将DataTable
添加到Properties.Settings.Default
...但它不适用于新版本我始终将其视为Null
。
关于保存和恢复DataTable
的最佳方法的任何建议,请记住,他们的记录可以在运行期间超过10-15 k。
谢谢
答案 0 :(得分:4)
Properties.Settings
可以存储字符串数据,因此您可以序列化DataTable
并存储它。稍后您可以反序列化字符串以获取DataTable
。您可以使用JSON.Net之类的:
var serializedDt = JsonConvert.SerializeObject(dt);
//store the string
要取回:
DataTable yourDataTable = JsonConvert.DeserializeObject<DataTable>(serializedDt);
要添加的另一件事是,如果您期望大数据,那么您可以查看将数据存储在客户端数据库中的选项,例如Sqlite。
答案 1 :(得分:1)
序列化对象,但将其放在恢复文件中。在恢复过程中,只需阅读文件,您就不必担心空间。