【问题标题】:Xml Import to datagridview c#XML导入到datagridview c#
【发布时间】:2017-09-18 21:45:53
【问题描述】:

你能帮我导入这个 XML 吗?

我的困难是他没有元素。

例如:

<?xml version="1.0" encoding="Windows-1252"?>
<TBL>
  <CLI001>
    <NrCli>1000</NrCli>
    <Nome>Garagem Mira-Sintra, Lda.</Nome>
    <CPost>2710-011 SINTRA</CPost>
    <Comercial>7</Comercial>
    <VndNome>A. Tomás &amp; Lúcio- Terraplanagens e Cofragens, Lda</VndNome>
  </CLI001>
  <CLI002>
    <NrCli>1001</NrCli>
    <Nome>Auto Mecânica Torreense, Lda</Nome>
    <CPost>2560-231 TORRES VEDRAS</CPost>
    <Comercial>8</Comercial>
    <VndNome>Ricardo Rui Ribeiro - Sociedade de advogados</VndNome>
  </CLI002>
  <CLI003>
    <NrCli>1002</NrCli>
    <Nome>Auto Peças de Miranda, Lda</Nome>
    <CPost>5210-300 SÃO MARTINHO DE ANGUEIRA</CPost>
    <Comercial>10</Comercial>
    <VndNome>Jacinto Marques de Almeida Saraiva</VndNome>
  </CLI003>
<TBL>

只导入第一条记录:

try
{
  DataSet dataSet = new DataSet();
  dataSet.ReadXml(@"C:\Users\Rui\Desktop\myfilename.xml");
  dataGridView1.DataSource = dataSet.Tables[0];
}
catch (Exception ex)
{
  MessageBox.Show(ex.ToString());
}

我找不到解决这个问题的方法:s

【问题讨论】:

  • 是无效的格式错误还是别的什么?您希望人们如何在不分享您遇到的错误的情况下帮助您?

标签: c# xml winforms


【解决方案1】:

那么结束标签&lt;TBL&gt;应该是结束标签&lt;/TBL&gt;。下次您可以使用this URL 来验证您的 xml。

【讨论】:

    【解决方案2】:

    首先,您的示例 xml 中有一个错字,它应该有一个结束标记。我假设您的实际 XML 具有结束标记,因为您的代码在尝试将 XML 加载到 DataSet 时会失败。

    您在 datagridview 中只看到一行的原因是 在 dataset.Tables[0] 中只有一行。每个 CLI 标记(CLI001、CLI002、CLI003)都作为单独的表加载到数据集中。查看数据网格视图中加载的数据的结构,它符合 CLI001 的子项。如果您想在单个 DataGridView 中显示所有这些,则需要将它们合并到一个数据表中。

    DataSet dataSet = new DataSet();
    dataSet.ReadXml(@"C:\Users\Rui\Desktop\myfilename.xml");
    
    //merge all the tables into a single one
    var dtMerged = dataSet.Tables[0].Copy();
    
    for (int i = 1; i < dataSet.Tables.Count; i++)
    {
        dtMerged.Merge(dataSet.Tables[i]);
    }
    
    //set the datasource using the merged datatable
    dataGridView1.DataSource = dtMerged;
    

    【讨论】:

    • @rui 很高兴我能提供帮助。你能把答案标记为正确吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 2016-06-07
    • 2017-08-20
    相关资源
    最近更新 更多