【问题标题】:Writing relational SQL data as XML将关系 SQL 数据编写为 XML
【发布时间】:2014-02-24 14:14:04
【问题描述】:

我在 SQL 2010 中的两个表之间有主子关系。我想将该数据放入一个 XML 文件中,我可以将其发送给供应商。我在 Visual Studio 2012 中使用 C#。

我是否使用强类型数据集?我是否将数据写成一个平面文件,其中每一行都是一个连接记录?

TIA - 杰夫。

【问题讨论】:

标签: c# sql-server xml


【解决方案1】:

我已经尝试了解决方案的 SQL Server 部分。您可以将查询放在存储过程中,然后使用 C# 代码调用存储过程。这将允许您直接在程序中获取 XML。这是 SQL Server 2008 R2。

CREATE TABLE parent 
  ( 
     parent_id   INT IDENTITY PRIMARY KEY, 
     parent_name NVARCHAR(100) 
  ); 

CREATE TABLE child 
  ( 
     child_id   INT IDENTITY PRIMARY KEY, 
     parent_id  INT REFERENCES parent(parent_id), 
     child_name NVARCHAR(100) 
  ); 

INSERT INTO parent 
            (parent_name) 
VALUES     ('JOHN'); 

INSERT INTO parent 
            (parent_name) 
VALUES     ('TOM'); 

INSERT INTO parent 
            (parent_name) 
VALUES     ('STACY'); 

INSERT INTO child 
            (parent_id, 
             child_name) 
VALUES     (1, 
            'Emily') 

INSERT INTO child 
            (parent_id, 
             child_name) 
VALUES     (1, 
            'Ryan') 

INSERT INTO child 
            (parent_id, 
             child_name) 
VALUES     (2, 
            'Krusna') 

INSERT INTO child 
            (parent_id, 
             child_name) 
VALUES     (2, 
            'Uma') 

INSERT INTO child 
            (parent_id, 
             child_name) 
VALUES     (2, 
            'Kali') 

INSERT INTO child 
            (parent_id, 
             child_name) 
VALUES     (3, 
            'Jimbo') 

INSERT INTO child 
            (parent_id, 
             child_name) 
VALUES     (3, 
            'Howard') 

SELECT parent.parent_id   AS "@parentId", 
       parent.parent_name AS "@parentname", 
       (SELECT child_id   AS "@childId", 
               child_name AS "@childName" 
        FROM   child 
        WHERE  child.parent_id = parent.parent_id 
        FOR xml path ('Child'), type) 
FROM   parent 
       INNER JOIN child 
               ON ( parent.parent_id = child.parent_id ) 
FOR xml path ('Parent'), root ('Container'), type   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 2018-07-03
    • 2022-06-28
    • 1970-01-01
    相关资源
    最近更新 更多