【问题标题】:A way to save a specific My.Settings Variable in VB.NET一种在 VB.NET 中保存特定 My.Settings 变量的方法
【发布时间】:2012-08-26 02:58:28
【问题描述】:

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

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

【问题讨论】:

  • 所有这些数据都保存到一个配置文件中,因此执行该 IO 操作当然需要一段时间。
  • 有没有办法制作多个配置文件?

标签: vb.net save my.settings


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    如何将您的数据表保存在您的设置中。您可以使用DataTable.WriteXml()。这将使您的设置更小,您可以单独访问它们!

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

    但如果没有其他可能性 this solution from 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-20
      • 2012-08-15
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      相关资源
      最近更新 更多