gpt4 book ai didi

c# - 如何将多个表作为一个 XML 返回?

转载 作者:太空狗 更新时间:2023-10-29 18:28:34 25 4
gpt4 key购买 nike

我有以下脚本:

DECLARE @columns TABLE (
Caption varchar(50),
Width int);

INSERT INTO @columns
VALUES ('Id', 0), ('Name', 100);

DECLARE @rows TABLE (
Id int,
[Name] varchar(50));

INSERT INTO @rows
VALUES (1, 'John'), (2, 'Steve');

SELECT *,
(SELECT *
FROM @rows
FOR XML PATH('Row'), ROOT('Rows'), TYPE, ELEMENTS)
FROM @columns
FOR XML PATH('Column'), ROOT('Results'), TYPE, ELEMENTS;

我需要返回以下 XML:

<Results>
<Columns>
<Column>
<Caption>Id</Caption>
<Width>0</Width>
</Column>
<Column>
<Caption>Name</Caption>
<Width>100</Width>
</Column>
</Columns>
<Rows>
<Row>
<Id>1</Id>
<Name>John</Name>
</Row>
<Row>
<Id>2</Id>
<Name>Steve</Name>
</Row>
</Rows>
</Results>

我的想法是,我将把 XML 转换成具有 2 个 DataTables(一个用于列,另一个用于行)的 DataSet。我将使用它来填充 DataGridView

但是,我的问题是我当前生成的 XML 格式不正确,与我期望的不一样。

按预期生成 XML 的正确语法是什么?

最佳答案

根据我们拥有的数据,您可以得到想要的结果:

SELECT (SELECT Caption,
Width
FROM @columns
FOR XML PATH('Column'),TYPE) AS [Columns],
(SELECT Id,
[Name]
FROM @rows
FOR XML PATH('Row'),TYPE) AS [Rows]
FOR XML PATH ('Results');

关于c# - 如何将多个表作为一个 XML 返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54342870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com