1

数千のレコードを返すストアド プロシージャがあります。この SP の出力に XSL を適用する必要があります。それを行うための最良の方法は何でしょうか

  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

プラットフォームでも同様のアプローチを使用しています。ただし、MS SQL Server Expressを使用しており、XSLを適用できないため、ストアドプロシージャにXSLを直接適用しません。少なくとも、この特定の主題を探しているときに私が見つけたのは、そのような変換にはMSSQLServerの優れたバージョンが必要です。

XMLを出力するストアドプロシージャは大きくて不潔であり(ただしスムーズに実行されます)、結果を読み戻すのに問題はありません。リクエストごとに最大で数秒、通常は結果として数千行になり、複数のテーブルを結合します。TelerikコンポーネントでのVS2010およびVB.Netの使用。

于 2012-09-05T06:40:37.023 に答える