0

URLをクリックするだけで、SQLサーバーのxml列の内容をクライアントに返す必要があります。xml には、正しいアプリケーション (この場合は Infopath) を開くための処理命令が含まれています。

利用可能なさまざまな xmlreader ライターとストリームのすべてについて、私は少し混乱しています。SQL ExecuteXmlReader の内容を Response.OutputStream に送信したいと思いますが、それらを一緒に配管する方法がわかりません。

よろしくお願いします

4

4 に答える 4

0

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)を使用します。これは、おおよそこれらの行に沿ったものです(エラー処理は含まれていません。処理はユーザーに任せます:-))。

それは何か役に立ちますか?

マーク

于 2009-03-06T20:11:31.993 に答える
0

SQL 2005 以降では、このFOR XMLステートメントがサポートされています。こちらをご覧ください

例えば:

SELECT * FROM MyTable FOR XML RAW;

XML タグ名をデータベース列とは異なるものにするためのキーワードは他にもあります。

次に、C# で使用する Command クラスの ExecuteXmlReader ドキュメントを参照してください。

于 2009-03-06T20:17:49.780 に答える