【问题标题】:How to load, save and display data from GridView to XML?如何从 GridView 加载、保存和显示数据到 XML?
【发布时间】:2017-01-01 05:20:22
【问题描述】:

如何从 GridView 加载、保存和显示数据到 XML?不是硬盘上的 XML 文件,而是一个临时 XML 变量,用于将其全部保存在数据库中 XML 类型的单个字段中。

【问题讨论】:

    标签: asp.net xml


    【解决方案1】:

    gridview 本身没有任何数据 - 因此您无法将任何数据保存到磁盘。

    您的 gridview 将绑定到一个数据源 - 一个对象列表、一个 DataTable、任何东西 - 那是数据,并且可以保存到(和从)磁盘加载。

    您最简单的选择是将数据 XML 序列化到磁盘 - 或从那里加载。您需要查看XML serialization

    或者查看 DataTable 的 ReadXmlWriteXml 方法 - 它们允许您以 XML 格式将 DataTable 保存到磁盘上 - 或者从磁盘上的 XML 文件加载它。

    可以这么简单:

    DataTable myData = new DataTable();
    myData.ReadXml(@"C:\temp\mydatafile.xml");
    
    // do some processing
    
    myData.WriteXml(@"C:\temp\mydatafile.xml", XmlWriteMode.WriteSchema);
    

    更新:
    如果要将 XML 存储到字符串中以便将其转储到数据库中,请使用以下命令:

    // write DataTable to memory stream as XML
    MemoryStream memStm = new MemoryStream();
    myData.WriteXml(memStm);
    
    // read memory stream into a string variable
    memStm.Position = 0;
    string xmlContents = new StreamReader(memStm).ReadToEnd();
    

    然后将您的xmlContents 存储到数据库中。

    马克

    【讨论】:

    • 但是我不想访问硬盘。我只想将整个表保存在数据库的一个字段中。
    【解决方案2】:

    为什么要将历史数据存储在数据库中?为什么不保存 QueryString 或用于填充 gridview 的任何数据并相应地重新绑定数据?

    例如,如果您的用户导航到 mypage.aspx?id=56&size=large&date=yesterday

    您可以在 json 对象 {"Id":"56","size":"large","date":"yesterday"} 中加载这些选项并将其存储在数据库中。然后,您的数据是最新的,大型数据集不会用冗余/过时的数据填满您的数据库表。

    查看: http://www.codeplex.com/Json

    编辑:如果你不想乱加json,你可以使用任何东西作为分隔符,例如,在单独的行上有键/值对并用管道分隔它们('|')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多