查询DataSet

时间:2009-12-08 18:44:44

标签: c# xsd datatable dataset

我正在将XML文件中的数据读入强类型DataSet。数据最终存在于多个表中;我可以对它运行查询以创建非规范化视图以显示在DataGrid

示例输入:

<PeopleFile>
    <address>
        <street>123 Some Street</street>
        <town>Anytown</town>
        <resident>
            <first>Jane</first>
            <last>Doe</last>
        </resident>
        <resident>
            <first>John</first>
            <last>Doe</last>
        </resident>
    </address>
    <address>
        <street>456 Tree Street</street>
        <town>Westwood</town>
        <resident>
            <first>Mary</first>
            <last>Jones-Smith</last>
        </resident>
        <resident>
            <first>Mike</first>
            <last>Smith</last>
        </resident>
        <resident>
            <first>Kate</first>
            <last>Smith</last>
        </resident>
    </address>
</PeopleFile>

期望的输出:

123 Some Street Anytown     Jane    Doe  
123 Some Street Anytown     John    Doe  
456 Tree Street Westwood    Mary    Jones-Smith  
456 Tree Street Westwood    Mike    Smith  
456 Tree Street Westwood    Kate    Smith  

编辑:我应该补充一点,除了每个文件有多个表格外,我的真实数据也会分成多个文件,AFAIK需要将这些文件加载​​到单独的DataSets中。

1 个答案:

答案 0 :(得分:2)

是的,使用Linq。有一组特殊的扩展称为Linq-to-Datasets。

您显然需要.NET 3.5,并添加using System.Data;

如果您的多个文件遵循相同的模式,您应该能够将它们读入TypedDataSet和Merge()这些实例的单独实例中。