1

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

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

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

4

2 回答 2

2

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

从这里的msdn :

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 

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

于 2012-09-05T06:44:24.393 回答
0

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

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

于 2012-09-05T06:40:37.023 回答