URLをクリックするだけで、SQLサーバーのxml列の内容をクライアントに返す必要があります。xml には、正しいアプリケーション (この場合は Infopath) を開くための処理命令が含まれています。
利用可能なさまざまな xmlreader ライターとストリームのすべてについて、私は少し混乱しています。SQL ExecuteXmlReader の内容を Response.OutputStream に送信したいと思いますが、それらを一緒に配管する方法がわかりません。
よろしくお願いします
URLをクリックするだけで、SQLサーバーのxml列の内容をクライアントに返す必要があります。xml には、正しいアプリケーション (この場合は Infopath) を開くための処理命令が含まれています。
利用可能なさまざまな xmlreader ライターとストリームのすべてについて、私は少し混乱しています。SQL ExecuteXmlReader の内容を Response.OutputStream に送信したいと思いますが、それらを一緒に配管する方法がわかりません。
よろしくお願いします
XML列の内容について標準SQLを使用してデータベースにクエリを実行し、それをページで取得して、その文字列をユーザーにストリーミングしてみませんか?
何かのようなもの:
string xmlContents = string.Empty;
using(SqlConnection _con = new SqlConnection("server=(local);database=Northwind;Integrated Security=SSPI;")
{
string queryStatement = "SELECT XmlColumn FROM dbo.MyTable WHERE id = @ID";
using(SqlCommand _cmd = new SqlCommand(queryStatement, _con)
{
_cmd.Parameters.AddWithValue("@ID", 5555);
_con.Open();
xmlContents = _cmd.ExecuteScalar().ToString(); // returns an object
_con.Close();
}
}
次に、XMLをユーザーにストリーミングバックします。たとえば、Response.Write(xmlContents)を使用します。これは、おおよそこれらの行に沿ったものです(エラー処理は含まれていません。処理はユーザーに任せます:-))。
それは何か役に立ちますか?
マーク
SQL 2005 以降では、このFOR XMLステートメントがサポートされています。こちらをご覧ください
例えば:
SELECT * FROM MyTable FOR XML RAW;
XML タグ名をデータベース列とは異なるものにするためのキーワードは他にもあります。
次に、C# で使用する Command クラスの ExecuteXmlReader ドキュメントを参照してください。