Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为存储过程输出创建XML的最佳方法是什么_C#_Sql_Xml_Xslt_Stored Procedures - Fatal编程技术网

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

C# 为存储过程输出创建XML的最佳方法是什么,c#,sql,xml,xslt,stored-procedures,C#,Sql,Xml,Xslt,Stored Procedures,我有一个返回几千条记录的存储过程。我需要将XSL应用于此SP的输出。最好的方法是什么 读取数据集中的数据,使用XmlDataDocument并应用XSL 从SP输出XML并对其应用XSL 对于2,我担心XML的大小太大,C#代码读取会超时。请建议。我们在我们的平台上使用类似的方法。但是,由于我们使用MS SQL Server Express,所以我们不直接在存储过程上应用XSL,并且它不允许应用XSL。至少这是我在寻找这个特定主题时发现的,这种转换需要MSSQL Server的高级版本 输出XM

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

  • 读取数据集中的数据,使用XmlDataDocument并应用XSL
  • 从SP输出XML并对其应用XSL

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

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


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

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

    从msdn:


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

    每个记录中的XML集实际有多大?
    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