为存储过程输出创建XML的最佳方法是什么

时间:2012-09-05 06:31:41

标签: c# sql xml xslt stored-procedures

我有一个存储过程,返回几千条记录。我需要将XSL应用于此SP的输出。什么是最好的方法呢

  1. 读取数据集中的数据,使用XmlDataDocument并应用XSL
  2. 从SP输出XML并在该
  3. 上应用XSL

    对于2,我担心XML大小太大而C#代码读取它会超时。请建议。

2 个答案:

答案 0 :(得分:2)

您可以使用命名空间SqlXmlCommand中的Microsoft.Data.SqlXml类型。

来自msdn here

SqlXmlCommand cmd = new SqlXmlCommand(ConnString);
cmd.CommandText = "SELECT TOP 20 FirstName, LastName FROM Person.Contact FOR XML AUTO";
cmd.XslPath = "MyXSL.xsl";
cmd.RootTag = "root";
...etc 

如果您担心超时,只需在连接字符串上设置更大的超时。

答案 1 :(得分:0)

我们在平台上使用类似的方法。但是我们不会在存储过程中直接应用XSL,因为我们使用的是MS SQL Server Express,它不允许应用XSL。至少这是我在寻找这个特定主题时所发现的,这种转换需要一个高级版本的MSSQL Server。

输出XML的存储过程很大且很脏(但运行顺利),我们在回读结果时没有任何问题。每个请求最多几秒钟,通常约为几千行,并连接几个表。将VS2010和VB.Net与Telerik组件一起使用。