保存和恢复 DataTable c# 的最佳方式
Best way to save and restore a DataTable c#
我开发了一个 WinForm
c# 应用程序,现在添加了一个恢复选项,因此如果它意外关闭等,一切都可以在新的 运行.
上恢复
我已经设法恢复了几乎所有的东西(列表、整数、字符串等...)
我面临的唯一问题是恢复 DataTable
。在 运行 期间,我的申请记录被添加到此 DataTable
中,最终用户可以将其导出到 csv。
我试图将 DataTable
添加到 Properties.Settings.Default
... 但它在新的 运行 上不起作用,我总是将其视为 Null
。
关于保存和恢复 DataTable
的最佳方法的任何建议请记住,在 运行 期间,他们的记录可能超过 10-15 k。
谢谢
Properties.Settings
可以存储字符串数据,所以你可以序列化你的DataTable
并存储它。稍后您可以反序列化字符串以获得 DataTable
。您可以像这样使用 JSON.Net:
var serializedDt = JsonConvert.SerializeObject(dt);
//store the string
取回:
DataTable yourDataTable = JsonConvert.DeserializeObject<DataTable>(serializedDt);
还有一点要补充,如果您需要大数据,那么您可以考虑在客户端将数据存储在数据库中的选项,例如 Sqlite。
序列化对象,但将其放在恢复文件中。在恢复启动期间,只需读取文件,您就不必担心 space.
我开发了一个 WinForm
c# 应用程序,现在添加了一个恢复选项,因此如果它意外关闭等,一切都可以在新的 运行.
我已经设法恢复了几乎所有的东西(列表、整数、字符串等...)
我面临的唯一问题是恢复 DataTable
。在 运行 期间,我的申请记录被添加到此 DataTable
中,最终用户可以将其导出到 csv。
我试图将 DataTable
添加到 Properties.Settings.Default
... 但它在新的 运行 上不起作用,我总是将其视为 Null
。
关于保存和恢复 DataTable
的最佳方法的任何建议请记住,在 运行 期间,他们的记录可能超过 10-15 k。
谢谢
Properties.Settings
可以存储字符串数据,所以你可以序列化你的DataTable
并存储它。稍后您可以反序列化字符串以获得 DataTable
。您可以像这样使用 JSON.Net:
var serializedDt = JsonConvert.SerializeObject(dt);
//store the string
取回:
DataTable yourDataTable = JsonConvert.DeserializeObject<DataTable>(serializedDt);
还有一点要补充,如果您需要大数据,那么您可以考虑在客户端将数据存储在数据库中的选项,例如 Sqlite。
序列化对象,但将其放在恢复文件中。在恢复启动期间,只需读取文件,您就不必担心 space.