在VB.NET中保存特定My.Settings变量的方法



在My.Settings中,我有很多变量,包括36000条记录的Datatable和Couple Large Array Lists,现在当我调用My.Setting.Save()时,它会保存所有花费大量时间的变量,并保存未更改的变量,有没有办法让它只保存特定的Datatable或ArrayList?

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

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

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

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

不在设置内保存数据表怎么样。您可以使用DataTable.WriteXml()。这将使您的设置更小,并且您可以单独访问它们!

' save table
DataTable.WriteXml("yourFile.xml")
' load table
Dim newTable As New DataTable
newTable.ReadXml(fileName)

但是,如果没有其他可能性SLaks的此解决方案也将工作

' 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)

最新更新