0

在 My.Settings 我有很多变量,包括 36000 条记录 Datatable 和 Couple Large Array Lists,现在当我调用 My.Settings.Save() 时,它会保存所有需要花费大量时间的变量并保存没有的变量被改变了,有没有办法让它只保存一个特定的数据表或数组列表?

My.Setting.Save() 
'but what i want for example is something like
My.Settings.SomeDatatable.Save()
4

2 回答 2

0

What about saving your dataTable not within your Settings. You could make use of DataTable.WriteXml(). this would keep your settings much smaller and you can access them separately!

' save table
DataTable.WriteXml("yourFile.xml")

' load table
Dim newTable As New DataTable
newTable.ReadXml(fileName)

But if there is no other possibility this solution from SLaks will work too

' save table
Dim writer As New StringWriter()
table.WriteXml(writer)
My.MySettings.Default.TableXml = writer.ToString()

' load table
Dim reader As New StringReader(My.MySettings.Default.TableXml)
table.ReadXml(reader)
于 2012-08-27T09:52:00.060 回答
0

这些设置存储在 XML 文件中。由于 XML 文件不以固定宽度的记录格式存储数据,因此无法在不重写整个内容的情况下更新 XML 文件中的单个节点。如果速度太慢,我建议:

  • 将这些设置存储在多个 XML 文件中,这样您只需保存适用的文件,而无需保存其余文件
  • 将设置存储在数据库中,可以单独保存每一行而无需重写整个文件

数据库将其数据存储在固定宽度的“页面”中,因此只需要重写修改过的页面,而不是整个文件。

于 2012-08-27T09:38:51.370 回答